<?xml version="1.0"?>
<doc>
    <assembly>
        <name>TestFu</name>
    </assembly>
    <members>
        <member name="T:TestFu.Data.Adapters.DataAdapt">
            <summary>
            Static helper class for creating data binders
            </summary>	
        </member>
        <member name="T:TestFu.Data.Collections.DataGeneratorCollection">
            <summary>
            Summary description for DataGeneratorCollection.
            </summary>
        </member>
        <member name="T:TestFu.Data.IDataGeneratorCollection">
            <summary>
            A collection of <see cref="T:TestFu.Data.IDataGenerator"/>.
            </summary>
            <!-- No matching elements were found for the following include tag --><include file="Data/TestFu.Data.Doc.xml" path="//example[contains(descendant-or-self::*,&quot;IDataGeneratorCollection&quot;)]"/>
        </member>
        <member name="M:TestFu.Data.IDataGeneratorCollection.Add(TestFu.Data.IDataGenerator)">
            <summary>
            Adds a <see cref="T:TestFu.Data.IDataGenerator"/> to the collection.
            </summary>
            <param name="dataGenerator">
            <see cref="T:TestFu.Data.IDataGenerator"/> to add to the collection.
            </param>
            <exception cref="T:System.ArgumentNullException">
            <paramref name="dataGenerator"/> is a null reference
            (Nothing in Visual Basic)
            </exception>
        </member>
        <member name="M:TestFu.Data.IDataGeneratorCollection.Remove(TestFu.Data.IDataGenerator)">
            <summary>
            Removes a <see cref="T:TestFu.Data.IDataGenerator"/> from the collection.
            </summary>
            <param name="dataGenerator">
            <see cref="T:TestFu.Data.IDataGenerator"/> to remove from the collection.
            </param>
            <exception cref="T:System.ArgumentNullException">
            <paramref name="dataGenerator"/> is a null reference
            (Nothing in Visual Basic)
            </exception>		
        </member>
        <member name="M:TestFu.Data.IDataGeneratorCollection.Remove(System.Data.DataColumn)">
            <summary>
            Removes a <see cref="T:TestFu.Data.IDataGenerator"/> associated to
            <paramref name="column"/> from the collection.
            </summary>
            <param name="column">
            <see cref="T:System.Data.DataColumn"/> whose generator is to be removed from the collection.
            </param>
            <exception cref="T:System.ArgumentNullException">
            <paramref name="column"/> is a null reference
            (Nothing in Visual Basic)
            </exception>				
        </member>
        <member name="M:TestFu.Data.IDataGeneratorCollection.Remove(System.String)">
            <summary>
            Removes a <see cref="T:TestFu.Data.IDataGenerator"/> associated to
            <paramref name="column"/> from the collection.
            </summary>
            <param name="columnName">
            Column named <paramref name="columnName"/> whose generator is to be removed from the collection.
            </param>
            <exception cref="T:System.ArgumentNullException">
            <paramref name="columnName"/> is a null reference
            (Nothing in Visual Basic)
            </exception>						
        </member>
        <member name="P:TestFu.Data.IDataGeneratorCollection.Item(System.Data.DataColumn)">
            <summary>
            Gets the <see cref="T:TestFu.Data.IDataGenerator"/> associated to the
            <paramref name="column"/>.
            </summary>
            <exception cref="T:System.ArgumentNullException">
            <paramref name="column"/> is a null reference 
            (Nothing in Visual Basic)
            </exception>
        </member>
        <member name="P:TestFu.Data.IDataGeneratorCollection.Item(System.String)">
            <summary>
            Gets the <see cref="T:TestFu.Data.IDataGenerator"/> associated to the column named
            <paramref name="columnName"/>.
            </summary>
            <exception cref="T:System.ArgumentNullException">
            <paramref name="columnName"/> is a null reference 
            (Nothing in Visual Basic)
            </exception>		
        </member>
        <member name="T:TestFu.Data.IForeignKeyProviderCollection">
            <summary>
            A collection of <see cref="T:TestFu.Data.IForeignKeyProvider"/>.
            </summary>
            <!-- No matching elements were found for the following include tag --><include file="Data/TestFu.Data.Doc.xml" path="//example[contains(descendant-or-self::*,&quot;IForeignKeyProviderCollection&quot;)]"/>
        </member>
        <member name="T:TestFu.Data.Collections.TablePopulatorCollection">
            <summary>
            Summary description for TablePopulatorCollection.
            </summary>
        </member>
        <member name="T:TestFu.Data.ITablePopulatorCollection">
            <summary>
            A collection of <see cref="T:TestFu.Data.ITablePopulator"/>.
            </summary>
            <!-- No matching elements were found for the following include tag --><include file="Data/TestFu.Data.Doc.xml" path="//example[contains(descendant-or-self::*,&quot;ITablePopulatorCollection&quot;)]"/>
        </member>
        <member name="T:TestFu.Data.IUniqueValidatorCollection">
            <summary>
            A collection of <see cref="T:TestFu.Data.IUniqueValidator"/>.
            </summary>
            <!-- No matching elements were found for the following include tag --><include file="Data/TestFu.Data.Doc.xml" path="//example[contains(descendant-or-self::*,&quot;IUniqueValidatorCollection&quot;)]"/>
        </member>
        <member name="T:TestFu.Data.DbAdministratorBase">
            <summary>
            Abstract class to perform administrative tasks on a database
            </summary>
            <!-- No matching elements were found for the following include tag --><include file="Data/TestFu.Data.Doc.xml" path="//example[contains(descendant-or-self::*,&quot;DbAdministratorBase&quot;)]"/>
        </member>
        <member name="M:TestFu.Data.DbAdministratorBase.#ctor(System.String,System.String,TestFu.Data.IDbFactory)">
            <summary>
            Initializes an instance of <see cref="T:TestFu.Data.DbAdministratorBase"/> with the connection string.
            </summary>
            <param name="connectionString">
            Connection string to the SQL server without initial catalog
            </param>
            <param name="databaseName">
            Catalog name
            </param>
            <exception cref="T:System.ArgumentNullException">
            <paramref name="connectionString"/> is a null reference (Nothing in Visual Basic)
            </exception>
        </member>
        <member name="M:TestFu.Data.DbAdministratorBase.BackupDatabase(TestFu.Data.DbBackupDevice,System.String)">
            <summary>
            Creates a backup of the specified database using the specified <paramref name="device"/> 
            and <paramref name="destination"/>.
            </summary>
            <param name="device">
            A <see cref="T:TestFu.Data.DbBackupDevice"/> defining the type of output device.
            </param>
            <param name="destination">
            Device path.
            </param>
            <exception cref="T:System.ArgumentNullException">
            <paramref name="destination"/> is a null
            reference (Nothing in Visual Basic)
            </exception>
        </member>
        <member name="M:TestFu.Data.DbAdministratorBase.RestoreDatabase(TestFu.Data.DbBackupDevice,System.String)">
            <summary>
            Restores a backup of the specified database using the specified <paramref name="device"/> 
            and <paramref name="destination"/>.
            </summary>
            <param name="device">
            A <see cref="T:TestFu.Data.DbBackupDevice"/> defining the type of output device.
            </param>
            <param name="destination">
            Device path.
            </param>
            <exception cref="T:System.ArgumentNullException">
            <paramref name="destination"/> is a null
            reference (Nothing in Visual Basic)
            </exception>
            <remarks>
            <para>
            If you plan to override an existing database, you must first drop this database.
            This method takes a conservative behavior and will not override an existing database.
            </para>
            </remarks>
        </member>
        <member name="M:TestFu.Data.DbAdministratorBase.CreateDatabase">
            <summary>
            Creates a new database on the server
            </summary>
        </member>
        <member name="M:TestFu.Data.DbAdministratorBase.DropDatabase">
            <summary>
            Drops an existing new database on the server
            </summary>
            <exception cref="T:System.ArgumentNullException">
            <paramref name="databaseName"/> is a null
            reference (Nothing in Visual Basic)
            </exception>		
        </member>
        <member name="M:TestFu.Data.DbAdministratorBase.ContainsDatabase">
            <summary>
            Gets a value indicating if the current database exists.
            </summary>
            <returns>
            true if it exists; otherwise, false.
            </returns>
        </member>
        <member name="M:TestFu.Data.DbAdministratorBase.DropTable(System.String)">
            <summary>
            Drops the table.
            </summary>
            <param name="tableName">
            Name of the table to drop
            </param>
            <remarks>
            <para>
            This method takes care of removing the constraints associated
            to the table before removing the table.
            </para>
            </remarks>
        </member>
        <member name="M:TestFu.Data.DbAdministratorBase.ContainsTable(System.String)">
            <summary>
            Gets a value indicating if the database contains
            the table.
            </summary>
            <param name="tableName">
            Name of the table to search
            </param>
            <returns>
            true if a table named <paramref name="tableName"/> is contained
            in the databse;oterwise false.
            </returns>
        </member>
        <member name="M:TestFu.Data.DbAdministratorBase.ExecuteNonQuery(System.String,System.String,System.Object[])">
            <summary>
            Executes a non-query in a safe, transactional environement.
            </summary>
            <param name="query">
            Query to execute.
            </param>
        </member>
        <member name="P:TestFu.Data.DbAdministratorBase.ConnectionString">
            <summary>
            Gets or sets the connection string with Initial Catalog information
            </summary>
            <value>
            Connection string.
            </value>
        </member>
        <member name="P:TestFu.Data.DbAdministratorBase.DatabaseName">
            <summary>
            Gets or sets the database name
            </summary>
            <value>
            The database name.
            </value>
        </member>
        <member name="P:TestFu.Data.DbAdministratorBase.DatabaseOwner">
            <summary>
            Gets or sets the database owner.
            </summary>
            <value>
            Database owner name.
            </value>
        </member>
        <member name="P:TestFu.Data.DbAdministratorBase.DatabaseConnectionString">
            <summary>
            Gets the connection string with Initial Catalog information.
            </summary>
            <value>
            Connection string with Initial catalog information.
            </value>
        </member>
        <member name="T:TestFu.Data.DbBackupDevice">
            <summary>
            Enumeration of available SQL backup devices
            </summary>
            <!-- No matching elements were found for the following include tag --><include file="Data/TestFu.Data.Doc.xml" path="//example[contains(descendant-or-self::*,&quot;DbBackupDevice&quot;)]"/>
        </member>
        <member name="F:TestFu.Data.DbBackupDevice.Disk">
            <summary>
            DISK device
            </summary>
        </member>
        <member name="F:TestFu.Data.DbBackupDevice.Tape">
            <summary>
            TAPE device
            </summary>
        </member>
        <member name="F:TestFu.Data.DbBackupDevice.Dump">
            <summary>
            Output to named dump
            </summary>
        </member>
        <member name="T:TestFu.Data.IDbFactory">
            <summary>
            A factory for <see cref="T:System.Data.IDbConnection"/> and <see cref="T:System.Data.IDbCommand"/>
            instances.
            </summary>
            <!-- No matching elements were found for the following include tag --><include file="Data/TestFu.Data.Doc.xml" path="//example[contains(descendant-or-self::*,&quot;IDbFactory&quot;)]"/>
        </member>
        <member name="M:TestFu.Data.IDbFactory.CreateConnection(System.String)">
            <summary>
            Creates a <see cref="T:System.Data.IDbConnection"/> instance.
            </summary>
            <param name="connectionString">
            Connection string to server
            </param>
            <returns>
            A <see cref="T:System.Data.IDbConnection"/> instance.
            </returns>
        </member>
        <member name="T:TestFu.Data.DbFixture">
            <summary>
            An abstract base class for test fixtures involving database testing.
            </summary>
            <example>
<para>The <c>DbFixture</c> (<c>SqlFixture</c> for MsSQL server) can be used as a base class for the 
fixtures involving database testing.
</para>
<code>[TestFixture]
public class DatabaseTest : SqlFixture
{
	public DatabaseTest()
	:base("Data Source=testserver;...","MyTestDatabase")
	{}
	
	[SetUp]
	public void SetUp()
	{
		this.Open();
		this.BeginTransaction();
	}
	
	[Test]
	public void Selec()
	{
		IDbCollection cmd = this.Connection.CreateCommand("select * from anytable",this.Transaction);
		...
	}
	
	[TearDown]
	public void TearDown()
	{
		this.Close();
	}
}</code>
</example>
            <seealso cref="T:TestFu.Data.SqlClient.SqlFixture"/>
        </member>
        <member name="M:TestFu.Data.DbFixture.#ctor(System.String,System.String,TestFu.Data.IDbFactory)">
            <summary>
            Initializes a <see cref="T:TestFu.Data.DbFixture"/> with a connection string.
            </summary>
            <param name="connectionString">
            Connection string for accessing the test database.
            </param>
            <exception cref="T:System.ArgumentNullException">
            <paramref name="connectionString"/> is a null reference
            (Nothing in Visual Basic)
            </exception>
        </member>
        <member name="M:TestFu.Data.DbFixture.Open">
            <summary>
            Opens a <see cref="T:System.Data.IDbConnection"/> instance with the 
            <see cref="P:TestFu.Data.DbFixture.ConnectionString"/>.
            </summary>
            <remarks>
            <para>
            This method must be implemented in inherited classes for different factorys.
            </para>
            </remarks>
        </member>
        <member name="M:TestFu.Data.DbFixture.ExecuteNonQuery(System.String,System.Object[])">
            <summary>
            Executes a non-query command with the given parameters
            </summary>
            <param name="query">
            Query format string
            </param>
            <param name="args">
            Query arguments for the format string
            </param>
            <returns>
            Number of affected rows
            </returns>
            <remarks>
            <para>
            The connection is automatically opened if necessary.
            </para>
            </remarks>
        </member>
        <member name="M:TestFu.Data.DbFixture.ExecuteScalar(System.String,System.Object[])">
            <summary>
            Executes a scalar query with the given parameters
            </summary>
            <param name="query">
            Query format string
            </param>
            <param name="args">
            Query arguments for the format string
            </param>
            <returns>
            Query result
            </returns>
            <remarks>
            <para>
            The connection is automatically opened if necessary.
            </para>
            </remarks>
        </member>
        <member name="M:TestFu.Data.DbFixture.ExecuteReader(System.String,System.Object[])">
            <summary>
            Executes query and returns the <see cref="T:System.Data.IDataReader"/>
            instance
            </summary>
            <param name="query">
            Query format string
            </param>
            <param name="args">
            Query arguments for the format string
            </param>
            <returns>
            A <see cref="T:System.Data.IDataReader"/> resulting from the query.
            </returns>
            <remarks>
            <para>
            The connection is automatically opened if necessary and the reader
            is created with <see cref="F:System.Data.CommandBehavior.CloseConnection"/> 
            option.
            </para>
            </remarks>
        </member>
        <member name="M:TestFu.Data.DbFixture.BeginTransaction">
            <summary>
            Begins a new transaction.
            </summary>		
            <remarks>
            <para>
            If a previous transaction was opened, by default, it is rolled back.
            </para>
            </remarks>
            <exception cref="T:System.InvalidOperationException">
            The current connection is not created or not opened.
            </exception>
        </member>
        <member name="M:TestFu.Data.DbFixture.Commit">
            <summary>
            Commits the current transaction if any.
            </summary>
        </member>
        <member name="M:TestFu.Data.DbFixture.RollBack">
            <summary>
            Rollsback the current transaction if any.
            </summary>
        </member>
        <member name="M:TestFu.Data.DbFixture.Close">
            <summary>
            Closes the current connection.
            </summary>
            <remarks>
            <para>
            If a transaction was opened, it is first rolled back.
            </para>
            </remarks>
        </member>
        <member name="P:TestFu.Data.DbFixture.Admin">
            <summary>
            Gets the database <see cref="T:TestFu.Data.DbAdministratorBase"/> instance
            </summary>
            <value>
            A <see cref="T:TestFu.Data.DbAdministratorBase"/> instance.
            </value>
        </member>
        <member name="P:TestFu.Data.DbFixture.Connection">
            <summary>
            Gets the current connection instance.
            </summary>
            <value>
            <see cref="T:System.Data.IDbConnection"/> instance.
            </value>
        </member>
        <member name="P:TestFu.Data.DbFixture.Transaction">
            <summary>
            Gets the current transaction.
            </summary>
            <value>
            A <see cref="T:System.Data.IDbTransaction"/> instance if <see cref="M:TestFu.Data.DbFixture.BeginTransaction"/> was called
            and the connection not closed; otherwise, a null reference (Nothing in Visual Basic)
            </value>
        </member>
        <member name="P:TestFu.Data.DbFixture.ConnectionString">
            <summary>
            Gets the connection string to access the db server (without
            database information.
            </summary>
        </member>
        <member name="P:TestFu.Data.DbFixture.DatabaseName">
            <summary>
            Gets the test database name.
            </summary>
            <value></value>
        </member>
        <member name="P:TestFu.Data.DbFixture.DatabaseConnectionString">
            <summary>
            Gets the connection string to connecto the test database.
            </summary>
        </member>
        <member name="T:TestFu.Data.Generators.BinaryGeneratorBase">
            <summary>
            A random data generator for <see cref="T:System.Byte"/> values.
            </summary>
            <remarks>
            <para>
            This <see cref="T:TestFu.Data.IDataGenerator"/> method generates Byte arrays with length in the range
            [<see cref="P:TestFu.Data.Generators.BinaryGeneratorBase.MinLength"/>, <see cref="P:TestFu.Data.Generators.BinaryGeneratorBase.MaxLength"/>].
            </para>
            </remarks>
        </member>
        <member name="T:TestFu.Data.Generators.DataGeneratorBase">
            <summary>
            Abstract base class from <see cref="T:TestFu.Data.IDataGenerator"/> instance.
            </summary>
        </member>
        <member name="T:TestFu.Data.IDataGenerator">
            <summary>
            An random data generator.
            </summary>
            <!-- No matching elements were found for the following include tag --><include file="Data/TestFu.Data.Doc.xml" path="//example[contains(descendant-or-self::*,&quot;IDataGenerator&quot;)]"/>
        </member>
        <member name="M:TestFu.Data.IDataGenerator.Reset">
            <summary>
            Resets the generator
            </summary>
        </member>
        <member name="M:TestFu.Data.IDataGenerator.GenerateData(System.Data.DataRow)">
            <summary>
            Generates a new value and fills it in the corresponding <see cref="T:System.Data.DataRow"/>.
            </summary>
            <remarks>
            <param>
            It is the user job to ensure that the <see cref="T:System.Data.DataRow"/> instance
            provided is compatible with the generator definition and more 
            specifically the <see cref="T:System.Data.DataColumn"/> it is associated with.
            </param>
            </remarks>
        </member>
        <member name="P:TestFu.Data.IDataGenerator.GeneratedType">
            <summary>
            Gets the generated type
            </summary>
            <value>
            Generated <see cref="T:System.Type"/>.
            </value>
        </member>
        <member name="P:TestFu.Data.IDataGenerator.NullProbability">
            <summary>
            Gets or sets the probability to produce a NULL
            </summary>
            <remarks>
            This value determines the probability to produce a null value. 
            The probability ranges from
            0 - never, to 1  - always.
            </remarks>
            <value>
            The probability to produce a null object.
            </value>
        </member>
        <member name="P:TestFu.Data.IDataGenerator.Column">
            <summary>
            Gets the target column
            </summary>
            <value>
            Target <see cref="T:System.Data.DataColumn"/> instance.
            </value>
        </member>
        <member name="M:TestFu.Data.Generators.DataGeneratorBase.Reset">
            <summary>
            Resets the generator
            </summary>		
        </member>
        <member name="M:TestFu.Data.Generators.DataGeneratorBase.GenerateData(System.Data.DataRow)">
            <summary>
            Generates a new value
            </summary>
            <returns>
            New random data.
            </returns>		
        </member>
        <member name="M:TestFu.Data.Generators.DataGeneratorBase.Update">
            <summary>
            Updates the internal data and verifies column information.
            </summary>
        </member>
        <member name="P:TestFu.Data.Generators.DataGeneratorBase.GeneratedType">
            <summary>
            Gets the generated type
            </summary>
            <value>
            Generated type.
            </value>
        </member>
        <member name="P:TestFu.Data.Generators.DataGeneratorBase.Column">
            <summary>
            Gets the target column
            </summary>
            <value>
            Target <see cref="T:System.Data.DataColumn"/> instance.
            </value>		
        </member>
        <member name="P:TestFu.Data.Generators.DataGeneratorBase.NullProbability">
            <summary>
            Gets or sets the probability to produce a NULL
            </summary>
            <remarks>
            This value determines the probability to produce a null value. The probability ranges from
            0, never to 1 always.
            </remarks>
            <value>
            The probability to produce a null object.
            </value>
        </member>
        <member name="M:TestFu.Data.Generators.BinaryGeneratorBase.GenerateData(System.Data.DataRow)">
            <summary>
            Generates a new value
            </summary>
            <returns>
            New random data.
            </returns>		
        </member>
        <member name="P:TestFu.Data.Generators.BinaryGeneratorBase.GeneratedType">
            <summary>
            Gets the generated type
            </summary>
            <value>
            Generated type.
            </value>
        </member>
        <member name="P:TestFu.Data.Generators.BinaryGeneratorBase.MinLength">
            <summary>
            Gets or sets the minimum length of the generated value
            </summary>
            <value>
            Minimum generated length. Default is 16. 
            </value>
        </member>
        <member name="P:TestFu.Data.Generators.BinaryGeneratorBase.MaxLength">
            <summary>
            Gets or sets the maximum generated value
            </summary>
            <value>
            Maximum generated length. Default is 16.
            </value>
        </member>
        <member name="T:TestFu.Data.Generators.BooleanGenerator">
            <summary>
            A random generator of <see cref="T:System.Boolean"/> values.
            </summary>
        </member>
        <member name="M:TestFu.Data.Generators.BooleanGenerator.#ctor(System.Data.DataColumn)">
            <summary>
            Creates an instance with <see cref="P:TestFu.Data.Generators.BooleanGenerator.TrueProbability"/> equal to 0.5.
            </summary>
        </member>
        <member name="M:TestFu.Data.Generators.BooleanGenerator.GenerateData(System.Data.DataRow)">
            <summary>
            Generates a new value
            </summary>
            <returns>
            New random data.
            </returns>		
        </member>
        <member name="P:TestFu.Data.Generators.BooleanGenerator.GeneratedType">
            <summary>
            Gets the generated type
            </summary>
            <value>
            Generated type.
            </value>
        </member>
        <member name="P:TestFu.Data.Generators.BooleanGenerator.TrueProbability">
            <summary>
            Gets or sets the probability to return true.
            </summary>
            <value>
            Probability to return true.
            </value>
            <exception cref="T:System.ArgumentOutOfRangeException">
            <paramref name="trueProbability"/> is not in <c>[0,1]</c>.
            </exception>
        </member>
        <member name="T:TestFu.Data.Generators.ByteGenerator">
            <summary>
            A random data generator for <see cref="T:System.Byte"/> values.
            </summary>
            <remarks>
            <para>
            This <see cref="T:TestFu.Data.IDataGenerator"/> method generates byte values in a range [<see cref="P:TestFu.Data.Generators.ByteGenerator.MinValue"/>, <see cref="P:TestFu.Data.Generators.ByteGenerator.MaxValue"/>].
            </para>
            </remarks>
        </member>
        <member name="M:TestFu.Data.Generators.ByteGenerator.GenerateData(System.Data.DataRow)">
            <summary>
            Generates a new value
            </summary>
            <returns>
            New random data.
            </returns>		
        </member>
        <member name="P:TestFu.Data.Generators.ByteGenerator.GeneratedType">
            <summary>
            Gets the generated type
            </summary>
            <value>
            Generated type.
            </value>
        </member>
        <member name="P:TestFu.Data.Generators.ByteGenerator.MinValue">
            <summary>
            Gets or sets the minimum generated value
            </summary>
            <value>
            Minimum generated value. Default is <see cref="F:System.Byte.MinValue"/>
            </value>
        </member>
        <member name="P:TestFu.Data.Generators.ByteGenerator.MaxValue">
            <summary>
            Gets or sets the maximum generated value
            </summary>
            <value>
            Maximum generated value. Default is <see cref="F:System.Byte.MaxValue"/>
            </value>
        </member>
        <member name="T:TestFu.Data.Generators.DateTimeGenerator">
            <summary>
            A random data generator for <see cref="T:System.DateTime"/> values.
            </summary>
            <remarks>
            <para>
            This <see cref="T:TestFu.Data.IDataGenerator"/> method generates DateTime values in a range [<see cref="P:TestFu.Data.Generators.DateTimeGenerator.MinValue"/>, <see cref="P:TestFu.Data.Generators.DateTimeGenerator.MaxValue"/>].
            </para>
            </remarks>
        </member>
        <member name="M:TestFu.Data.Generators.DateTimeGenerator.GenerateData(System.Data.DataRow)">
            <summary>
            Generates a new value
            </summary>
            <returns>
            New random data.
            </returns>		
        </member>
        <member name="P:TestFu.Data.Generators.DateTimeGenerator.GeneratedType">
            <summary>
            Gets the generated type
            </summary>
            <value>
            Generated type.
            </value>
        </member>
        <member name="P:TestFu.Data.Generators.DateTimeGenerator.MinValue">
            <summary>
            Gets or sets the minimum generated value
            </summary>
            <value>
            Minimum generated value. Default is <see cref="F:System.DateTime.MinValue"/>
            </value>
        </member>
        <member name="P:TestFu.Data.Generators.DateTimeGenerator.MaxValue">
            <summary>
            Gets or sets the maximum generated value
            </summary>
            <value>
            Maximum generated value. Default is <see cref="F:System.DateTime.MaxValue"/>
            </value>
        </member>
        <member name="T:TestFu.Data.Generators.DecimalGenerator">
            <summary>
            A random data generator for <see cref="T:System.Decimal"/> values.
            </summary>
            <remarks>
            <para>
            This <see cref="T:TestFu.Data.IDataGenerator"/> method generates decimal values in a range [<see cref="P:TestFu.Data.Generators.DecimalGenerator.MinValue"/>, <see cref="P:TestFu.Data.Generators.DecimalGenerator.MaxValue"/>].
            </para>
            </remarks>
        </member>
        <member name="M:TestFu.Data.Generators.DecimalGenerator.GenerateData(System.Data.DataRow)">
            <summary>
            Generates a new value
            </summary>
            <returns>
            New random data.
            </returns>		
        </member>
        <member name="P:TestFu.Data.Generators.DecimalGenerator.GeneratedType">
            <summary>
            Gets the generated type
            </summary>
            <value>
            Generated type.
            </value>
        </member>
        <member name="P:TestFu.Data.Generators.DecimalGenerator.MinValue">
            <summary>
            Gets or sets the minimum generated value
            </summary>
            <value>
            Minimum generated value. Default is <see cref="F:System.Decimal.MinValue"/>
            </value>
        </member>
        <member name="P:TestFu.Data.Generators.DecimalGenerator.MaxValue">
            <summary>
            Gets or sets the maximum generated value
            </summary>
            <value>
            Maximum generated value. Default is <see cref="F:System.Decimal.MaxValue"/>
            </value>
        </member>
        <member name="T:TestFu.Data.Generators.DoubleGenerator">
            <summary>
            A random data generator for <see cref="T:System.Double"/> values.
            </summary>
            <remarks>
            <para>
            This <see cref="T:TestFu.Data.IDataGenerator"/> method generates double values in a range [<see cref="P:TestFu.Data.Generators.DoubleGenerator.MinValue"/>, <see cref="P:TestFu.Data.Generators.DoubleGenerator.MaxValue"/>].
            </para>
            </remarks>
        </member>
        <member name="M:TestFu.Data.Generators.DoubleGenerator.GenerateData(System.Data.DataRow)">
            <summary>
            Generates a new value
            </summary>
            <returns>
            New random data.
            </returns>		
        </member>
        <member name="P:TestFu.Data.Generators.DoubleGenerator.GeneratedType">
            <summary>
            Gets the generated type
            </summary>
            <value>
            Generated type.
            </value>
        </member>
        <member name="P:TestFu.Data.Generators.DoubleGenerator.MinValue">
            <summary>
            Gets or sets the minimum generated value
            </summary>
            <value>
            Minimum generated value. Default is <see cref="F:System.Double.MinValue"/>
            </value>
        </member>
        <member name="P:TestFu.Data.Generators.DoubleGenerator.MaxValue">
            <summary>
            Gets or sets the maximum generated value
            </summary>
            <value>
            Maximum generated value. Default is <see cref="F:System.Double.MaxValue"/>
            </value>
        </member>
        <member name="T:TestFu.Data.Generators.GuidGenerator">
            <summary>
            A random generator of <see cref="T:System.Guid"/> values.
            </summary>	
        </member>
        <member name="M:TestFu.Data.Generators.GuidGenerator.GenerateData(System.Data.DataRow)">
            <summary>
            Generates a new value
            </summary>
            <returns>
            New random data.
            </returns>		
        </member>
        <member name="P:TestFu.Data.Generators.GuidGenerator.GeneratedType">
            <summary>
            Gets the generated type
            </summary>
            <value>
            Generated type.
            </value>
        </member>
        <member name="T:TestFu.Data.Generators.ImageBinaryGenerator">
            <summary>
            A random data generator for <see cref="T:System.Drawing.Bitmap"/> binary values.
            </summary>
            <remarks>
            <para>
            This <see cref="T:TestFu.Data.IDataGenerator"/> method generates a bitmap of size
            [<see cref="P:TestFu.Data.Generators.BinaryGeneratorBase.MaxLength"/> by <see cref="P:TestFu.Data.Generators.BinaryGeneratorBase.MaxLength"/>].
            </para>
            </remarks>
        </member>
        <member name="P:TestFu.Data.Generators.ImageBinaryGenerator.GeneratedType">
            <summary>
            Gets the generated type
            </summary>
            <value>
            Generated type.
            </value>
        </member>
        <member name="P:TestFu.Data.Generators.ImageBinaryGenerator.PixelFormat">
            <summary>
            Gets or sets the pixel format
            </summary>
            <value></value>
        </member>
        <member name="T:TestFu.Data.Generators.Int16Generator">
            <summary>
            A random data generator for <see cref="T:System.Int32"/> values.
            </summary>
            <remarks>
            <para>
            This <see cref="T:TestFu.Data.IDataGenerator"/> method generates int values in a range [<see cref="P:TestFu.Data.Generators.Int16Generator.MinValue"/>, <see cref="P:TestFu.Data.Generators.Int16Generator.MaxValue"/>].
            </para>
            </remarks>
        </member>
        <member name="M:TestFu.Data.Generators.Int16Generator.GenerateData(System.Data.DataRow)">
            <summary>
            Generates a new value
            </summary>
            <returns>
            New random data.
            </returns>		
        </member>
        <member name="P:TestFu.Data.Generators.Int16Generator.GeneratedType">
            <summary>
            Gets the generated type
            </summary>
            <value>
            Generated type.
            </value>
        </member>
        <member name="P:TestFu.Data.Generators.Int16Generator.MinValue">
            <summary>
            Gets or sets the minimum generated value
            </summary>
            <value>
            Minimum generated value. Default is <see cref="F:System.Int32.MinValue"/>
            </value>
        </member>
        <member name="P:TestFu.Data.Generators.Int16Generator.MaxValue">
            <summary>
            Gets or sets the maximum generated value
            </summary>
            <value>
            Maximum generated value. Default is <see cref="F:System.Int32.MaxValue"/>
            </value>
        </member>
        <member name="T:TestFu.Data.Generators.Int32Generator">
            <summary>
            A random data generator for <see cref="T:System.Int32"/> values.
            </summary>
            <remarks>
            <para>
            This <see cref="T:TestFu.Data.IDataGenerator"/> method generates int values in a range [<see cref="P:TestFu.Data.Generators.Int32Generator.MinValue"/>, <see cref="P:TestFu.Data.Generators.Int32Generator.MaxValue"/>].
            </para>
            </remarks>
        </member>
        <member name="M:TestFu.Data.Generators.Int32Generator.GenerateData(System.Data.DataRow)">
            <summary>
            Generates a new value
            </summary>
            <returns>
            New random data.
            </returns>		
        </member>
        <member name="P:TestFu.Data.Generators.Int32Generator.GeneratedType">
            <summary>
            Gets the generated type
            </summary>
            <value>
            Generated type.
            </value>
        </member>
        <member name="P:TestFu.Data.Generators.Int32Generator.MinValue">
            <summary>
            Gets or sets the minimum generated value
            </summary>
            <value>
            Minimum generated value. Default is <see cref="F:System.Int32.MinValue"/>
            </value>
        </member>
        <member name="P:TestFu.Data.Generators.Int32Generator.MaxValue">
            <summary>
            Gets or sets the maximum generated value
            </summary>
            <value>
            Maximum generated value. Default is <see cref="F:System.Int32.MaxValue"/>
            </value>
        </member>
        <member name="T:TestFu.Data.Generators.Int64Generator">
            <summary>
            A random data generator for <see cref="T:System.Int32"/> values.
            </summary>
            <remarks>
            <para>
            This <see cref="T:TestFu.Data.IDataGenerator"/> method generates int values in a range [<see cref="P:TestFu.Data.Generators.Int64Generator.MinValue"/>, <see cref="P:TestFu.Data.Generators.Int64Generator.MaxValue"/>].
            </para>
            </remarks>
        </member>
        <member name="M:TestFu.Data.Generators.Int64Generator.GenerateData(System.Data.DataRow)">
            <summary>
            Generates a new value
            </summary>
            <returns>
            New random data.
            </returns>		
        </member>
        <member name="P:TestFu.Data.Generators.Int64Generator.GeneratedType">
            <summary>
            Gets the generated type
            </summary>
            <value>
            Generated type.
            </value>
        </member>
        <member name="P:TestFu.Data.Generators.Int64Generator.MinValue">
            <summary>
            Gets or sets the minimum generated value
            </summary>
            <value>
            Minimum generated value. Default is <see cref="F:System.Int32.MinValue"/>
            </value>
        </member>
        <member name="P:TestFu.Data.Generators.Int64Generator.MaxValue">
            <summary>
            Gets or sets the maximum generated value
            </summary>
            <value>
            Maximum generated value. Default is <see cref="F:System.Int32.MaxValue"/>
            </value>
        </member>
        <member name="T:TestFu.Data.Generators.StringGeneratorBase">
            <summary>
            A random generator of <see cref="T:System.String"/> instances.
            </summary>
        </member>
        <member name="M:TestFu.Data.Generators.StringGeneratorBase.#ctor(System.Data.DataColumn)">
            <summary>
            Initializes a new instance of <see cref="T:TestFu.Data.Generators.StringGeneratorBase"/>.
            </summary>
            <param name="column"></param>
        </member>
        <member name="P:TestFu.Data.Generators.StringGeneratorBase.GeneratedType">
            <summary>
            Gets the generated type
            </summary>
            <value>
            Generated type.
            </value>
        </member>
        <member name="P:TestFu.Data.Generators.StringGeneratorBase.MinLength">
            <summary>
            Gets or sets the minimum length of the string
            </summary>
            <value>
            Minimum length of the string.
            </value>
            <exception cref="T:System.ArgumentOutOfRangeException">
            set proprety, the value is negative.
            </exception>
        </member>
        <member name="P:TestFu.Data.Generators.StringGeneratorBase.MaxLength">
            <summary>
            Gets or sets the maximum length of the string
            </summary>
            <value>
            Maximum length of the string.
            </value>
            <exception cref="T:System.ArgumentOutOfRangeException">
            set proprety, the value is less than 1.
            </exception>		
        </member>
        <member name="T:TestFu.Data.Generators.MoneyGenerator">
            <summary>
            A random data generator for <see cref="T:System.Data.SqlTypes.SqlMoney"/> values.
            </summary>
            <remarks>
            <para>
            This <see cref="T:TestFu.Data.IDataGenerator"/> method generates float values in a range [<see cref="P:TestFu.Data.Generators.MoneyGenerator.MinValue"/>, <see cref="P:TestFu.Data.Generators.MoneyGenerator.MaxValue"/>].
            </para>
            </remarks>
        </member>
        <member name="M:TestFu.Data.Generators.MoneyGenerator.GenerateData(System.Data.DataRow)">
            <summary>
            Generates a new value
            </summary>
            <returns>
            New random data.
            </returns>		
        </member>
        <member name="P:TestFu.Data.Generators.MoneyGenerator.GeneratedType">
            <summary>
            Gets the generated type
            </summary>
            <value>
            Generated type.
            </value>
        </member>
        <member name="P:TestFu.Data.Generators.MoneyGenerator.MinValue">
            <summary>
            Gets or sets the minimum generated value
            </summary>
            <value>
            Minimum generated value. Default is <see cref="F:System.Single.MinValue"/>
            </value>
        </member>
        <member name="P:TestFu.Data.Generators.MoneyGenerator.MaxValue">
            <summary>
            Gets or sets the maximum generated value
            </summary>
            <value>
            Maximum generated value. Default is <see cref="F:System.Single.MaxValue"/>
            </value>
        </member>
        <member name="M:TestFu.Data.Generators.NameStringGenerator.GenerateData(System.Data.DataRow)">
            <summary>
            Generates a new value
            </summary>
            <returns>
            New random data.
            </returns>		
        </member>
        <member name="M:TestFu.Data.Generators.NowDateTimeGenerator.GenerateData(System.Data.DataRow)">
            <summary>
            Generates a new value
            </summary>
            <returns>
            New random data.
            </returns>		
        </member>
        <member name="T:TestFu.Data.Generators.SingleGenerator">
            <summary>
            </summary>
            <remarks>
            <para>
            This <see cref="T:TestFu.Data.IDataGenerator"/> method generates float values in a range [<see cref="P:TestFu.Data.Generators.SingleGenerator.MinValue"/>, <see cref="P:TestFu.Data.Generators.SingleGenerator.MaxValue"/>].
            </para>
            </remarks>
        </member>
        <member name="M:TestFu.Data.Generators.SingleGenerator.GenerateData(System.Data.DataRow)">
            <summary>
            Generates a new value
            </summary>
            <returns>
            New random data.
            </returns>		
        </member>
        <member name="P:TestFu.Data.Generators.SingleGenerator.GeneratedType">
            <summary>
            Gets the generated type
            </summary>
            <value>
            Generated type.
            </value>
        </member>
        <member name="P:TestFu.Data.Generators.SingleGenerator.MinValue">
            <summary>
            Gets or sets the minimum generated value
            </summary>
            <value>
            Minimum generated value. Default is 0
            </value>
        </member>
        <member name="P:TestFu.Data.Generators.SingleGenerator.MaxValue">
            <summary>
            Gets or sets the maximum generated value
            </summary>
            <value>
            Maximum generated value. Default is 0
            </value>
        </member>
        <member name="T:TestFu.Data.Generators.RangeStringGenerator">
            <summary>
            A random generator of <see cref="T:System.String"/> instances.
            </summary>
        </member>
        <member name="M:TestFu.Data.Generators.RangeStringGenerator.#ctor(System.Data.DataColumn)">
            <summary>
            Initializes a new instance of <see cref="T:TestFu.Data.Generators.RangeStringGenerator"/>.
            </summary>
            <param name="column"></param>
        </member>
        <member name="M:TestFu.Data.Generators.RangeStringGenerator.GenerateData(System.Data.DataRow)">
            <summary>
            Generates a new value
            </summary>
            <returns>
            New random data.
            </returns>		
        </member>
        <member name="P:TestFu.Data.Generators.RangeStringGenerator.Characters">
            <summary>
            Gets or sets the string containing the generated characters
            </summary>
            <value></value>
        </member>
        <member name="T:TestFu.Data.Graph.DataGraph">
            <summary>
            A graph of <see cref="T:System.Data.DataTable"/> (vertices) and <see cref="T:System.Data.DataRelation"/>
            (edges).
            </summary>
        </member>
        <member name="M:TestFu.Data.Graph.DataGraph.#ctor">
            <summary>
            Builds a new empty directed graph with default vertex and edge
            provider.
            </summary>
            <remarks>
            </remarks>
        </member>
        <member name="M:TestFu.Data.Graph.DataGraph.Clear">
            <summary>
            Remove all of the edges and vertices from the graph.
            </summary>
        </member>
        <member name="M:TestFu.Data.Graph.DataGraph.AddVertex(System.Data.DataTable)">
            <summary>
            Add a new DataTableVertex to the graph and returns it.
            </summary>
            <returns>
            Created vertex
            </returns>
        </member>
        <member name="M:TestFu.Data.Graph.DataGraph.RemoveVertex(TestFu.Data.Graph.DataTableVertex)">
            <summary>
            Removes the vertex from the graph.
            </summary>
            <param name="v">vertex to remove</param>
            <exception cref="T:System.ArgumentNullException">v is null</exception>
        </member>
        <member name="M:TestFu.Data.Graph.DataGraph.AddEdge(TestFu.Data.Graph.DataTableVertex,TestFu.Data.Graph.DataTableVertex,System.Data.DataRelation)">
            <summary>
            Add a new vertex from source to target
             
            Complexity: 2 search + 1 insertion
            </summary>
            <param name="source">Source vertex</param>
            <param name="target">Target vertex</param>
            <returns>Created Edge</returns>
            <exception cref="T:System.ArgumentNullException">
            source or target is a null reference
            </exception>
            <exception cref="T:System.Exception">source or target are not part of the graph</exception>
        </member>
        <member name="M:TestFu.Data.Graph.DataGraph.ClearVertex(TestFu.Data.Graph.DataTableVertex)">
            <summary>
            Remove all edges to and from vertex u from the graph.
            </summary>
            <param name="v"></param>
        </member>
        <member name="M:TestFu.Data.Graph.DataGraph.RemoveEdge(TestFu.Data.Graph.DataRelationEdge)">
            <summary>
            Removes an edge from the graph.
            
            Complexity: 2 edges removed from the vertex edge list + 1 edge
            removed from the edge list.
            </summary>
            <param name="e">edge to remove</param>
            <exception cref="T:System.ArgumentNullException">
            e is a null reference (Nothing in Visual Basic)
            </exception>
            <exception cref="T:QuickGraph.Exceptions.EdgeNotFoundException">
            <paramref name="e"/> is not part of the graph
            </exception>
        </member>
        <member name="M:TestFu.Data.Graph.DataGraph.RemoveEdge(TestFu.Data.Graph.DataTableVertex,TestFu.Data.Graph.DataTableVertex)">
            <summary>
            Remove the edge (u,v) from the graph. 
            If the graph allows parallel edges this remove all occurrences of 
            (u,v).
            </summary>
            <param name="u">source vertex</param>
            <param name="v">target vertex</param>
        </member>
        <member name="M:TestFu.Data.Graph.DataGraph.AddVertex(TestFu.Data.Graph.DataTableVertex)">
            <summary>
            Add a new vertex to the graph and returns it.
            </summary>
            <returns>Create vertex</returns>
        </member>
        <member name="M:TestFu.Data.Graph.DataGraph.AddEdge(TestFu.Data.Graph.DataRelationEdge)">
            <summary>
            Used for serialization. Not for private use.
            </summary>
            <param name="e">edge to add.</param>
        </member>
        <member name="M:TestFu.Data.Graph.DataGraph.OutEdgesEmpty(TestFu.Data.Graph.DataTableVertex)">
            <summary>
            Gets a value indicating if the set of out-edges is empty
            </summary>
            <remarks>
            <para>
            Usually faster that calling <see cref="M:TestFu.Data.Graph.DataGraph.OutDegree(TestFu.Data.Graph.DataTableVertex)"/>.
            </para>
            </remarks>
            <value>
            true if the out-edge set is empty, false otherwise.
            </value>
            <exception cref="T:System.ArgumentNullException">
            v is a null reference (Nothing in Visual Basic)
            </exception>
            <exception cref="T:QuickGraph.Exceptions.VertexNotFoundException">
            v is not part of the graph.
            </exception>
        </member>
        <member name="M:TestFu.Data.Graph.DataGraph.OutDegree(TestFu.Data.Graph.DataTableVertex)">
            <summary>
            Returns the number of out-degree edges of v
            </summary>
            <param name="v">vertex</param>
            <returns>number of out-edges of the <see cref="T:TestFu.Data.Graph.DataTableVertex"/> v</returns>
            <exception cref="T:System.ArgumentNullException">
            v is a null reference (Nothing in Visual Basic)
            </exception>
            <exception cref="T:QuickGraph.Exceptions.VertexNotFoundException">
            v is not part of the graph.
            </exception>		
        </member>
        <member name="M:TestFu.Data.Graph.DataGraph.OutEdges(TestFu.Data.Graph.DataTableVertex)">
            <summary>
            Returns an iterable collection over the edge connected to v
            </summary>
            <param name="v"></param>
            <returns>out-edges of v</returns>
            <exception cref="T:System.ArgumentNullException">
            v is a null reference.
            </exception>
            <exception cref="T:QuickGraph.Exceptions.VertexNotFoundException">
            v is not part of the graph.
            </exception>
        </member>
        <member name="M:TestFu.Data.Graph.DataGraph.ContainsEdge(TestFu.Data.Graph.DataTableVertex,TestFu.Data.Graph.DataTableVertex)">
            <summary>
            Test is an edge (u,v) is part of the graph
            </summary>
            <param name="u">source vertex</param>
            <param name="v">target vertex</param>
            <returns>true if part of the graph</returns>
        </member>
        <member name="M:TestFu.Data.Graph.DataGraph.SelectSingleOutEdge(TestFu.Data.Graph.DataTableVertex,QuickGraph.Concepts.Predicates.IEdgePredicate)">
            <summary>
            Returns the first out-edge that matches the predicate
            </summary>
            <param name="v"></param>
            <param name="ep">Edge predicate</param>
            <returns>null if not found, otherwize the first Edge that
            matches the predicate.</returns>
            <exception cref="T:System.ArgumentNullException">v or ep is null</exception>
        </member>
        <member name="M:TestFu.Data.Graph.DataGraph.SelectOutEdges(TestFu.Data.Graph.DataTableVertex,QuickGraph.Concepts.Predicates.IEdgePredicate)">
            <summary>
            Returns the collection of out-edges that matches the predicate
            </summary>
            <param name="v"></param>
            <param name="ep">Edge predicate</param>
            <returns>enumerable colleciton of vertices that matches the 
            criteron</returns>
            <exception cref="T:System.ArgumentNullException">v or ep is null</exception>
        </member>
        <member name="M:TestFu.Data.Graph.DataGraph.RemoveEdgeIf(QuickGraph.Concepts.Predicates.IEdgePredicate)">
            <summary>
            Remove all the edges from graph g for which the predicate pred
            returns true.
            </summary>
            <param name="pred">edge predicate</param>
        </member>
        <member name="M:TestFu.Data.Graph.DataGraph.RemoveOutEdgeIf(TestFu.Data.Graph.DataTableVertex,QuickGraph.Concepts.Predicates.IEdgePredicate)">
            <summary>
            Remove all the out-edges of vertex u for which the predicate pred 
            returns true.
            </summary>
            <param name="u">vertex</param>
            <param name="pred">edge predicate</param>
        </member>
        <member name="M:TestFu.Data.Graph.DataGraph.ContainsVertex(TestFu.Data.Graph.DataTableVertex)">
            <summary>
            Tests if a <see cref="T:TestFu.Data.Graph.DataTableVertex"/> is part of the graph
            </summary>
            <param name="v">Vertex to test</param>
            <returns>true if is part of the graph, false otherwize</returns>
        </member>
        <member name="M:TestFu.Data.Graph.DataGraph.SelectSingleVertex(QuickGraph.Concepts.Predicates.IVertexPredicate)">
            <summary>
            Returns the first <see cref="T:TestFu.Data.Graph.DataTableVertex"/> that matches the predicate
            </summary>
            <param name="vp">vertex predicate</param>
            <returns>null if not found, otherwize the first vertex that
            matches the predicate.</returns>
            <exception cref="T:System.ArgumentNullException">vp is null</exception>
        </member>
        <member name="M:TestFu.Data.Graph.DataGraph.SelectVertices(QuickGraph.Concepts.Predicates.IVertexPredicate)">
            <summary>
            Returns the collection of vertices that matches the predicate
            </summary>
            <param name="vp">vertex predicate</param>
            <returns>enumerable colleciton of vertices that matches the 
            criteron</returns>
            <exception cref="T:System.ArgumentNullException">vp is null</exception>
        </member>
        <member name="M:TestFu.Data.Graph.DataGraph.ContainsEdge(TestFu.Data.Graph.DataRelationEdge)">
            <summary>
            Tests if a (<see cref="T:TestFu.Data.Graph.DataRelationEdge"/>) is part of the graph
            </summary>
            <param name="e">Edge to test</param>
            <returns>true if is part of the graph, false otherwize</returns>
        </member>
        <member name="M:TestFu.Data.Graph.DataGraph.SelectSingleEdge(QuickGraph.Concepts.Predicates.IEdgePredicate)">
            <summary>
            Returns the first Edge that matches the predicate
            </summary>
            <param name="ep">Edge predicate</param>
            <returns>null if not found, otherwize the first Edge that
            matches the predicate.</returns>
            <exception cref="T:System.ArgumentNullException">ep is null</exception>
        </member>
        <member name="M:TestFu.Data.Graph.DataGraph.SelectEdges(QuickGraph.Concepts.Predicates.IEdgePredicate)">
            <summary>
            Returns the collection of edges that matches the predicate
            </summary>
            <param name="ep">Edge predicate</param>
            <returns>enumerable colleciton of vertices that matches the 
            criteron</returns>
            <exception cref="T:System.ArgumentNullException">ep is null</exception>
        </member>
        <member name="M:TestFu.Data.Graph.DataGraph.AdjacentVertices(TestFu.Data.Graph.DataTableVertex)">
            <summary>
            Gets an enumerable collection of adjacent vertices
            </summary>
            <param name="v"></param>
            <returns>Enumerable collection of adjacent vertices</returns>
        </member>
        <member name="M:TestFu.Data.Graph.DataGraph.InEdgesEmpty(TestFu.Data.Graph.DataTableVertex)">
            <summary>
            Gets a value indicating if the set of in-edges is empty
            </summary>
            <remarks>
            <para>
            Usually faster that calling <see cref="M:TestFu.Data.Graph.DataGraph.InDegree(TestFu.Data.Graph.DataTableVertex)"/>.
            </para>
            </remarks>
            <value>
            true if the in-edge set is empty, false otherwise.
            </value>
            <exception cref="T:System.ArgumentNullException">
            v is a null reference (Nothing in Visual Basic)
            </exception>
            <exception cref="T:QuickGraph.Exceptions.VertexNotFoundException">
            <paramref name="v"/> is not part of the graph.
            </exception>
        </member>
        <member name="M:TestFu.Data.Graph.DataGraph.InDegree(TestFu.Data.Graph.DataTableVertex)">
            <summary>
            Returns the number of in-degree edges of v
            </summary>
            <param name="v"></param>
            <returns>number of in-edges of the vertex v</returns>
            <exception cref="T:System.ArgumentNullException">
            v is a null reference (Nothing in Visual Basic)
            </exception>
            <exception cref="T:QuickGraph.Exceptions.VertexNotFoundException">
            <paramref name="v"/> is not part of the graph.
            </exception>		
        </member>
        <member name="M:TestFu.Data.Graph.DataGraph.InEdges(TestFu.Data.Graph.DataTableVertex)">
            <summary>
            Returns an iterable collection over the in-edge connected to v
            </summary>
            <param name="v"></param>
            <returns>in-edges of v</returns>
            <exception cref="T:System.ArgumentNullException">
            v is a null reference (Nothing in Visual Basic)
            </exception>
            <exception cref="T:QuickGraph.Exceptions.VertexNotFoundException">
            <paramref name="v"/> is not part of the graph.
            </exception>		
        </member>
        <member name="M:TestFu.Data.Graph.DataGraph.QuickGraph#Concepts#Traversals#IBidirectionalGraph#InEdges(QuickGraph.Concepts.IVertex)">
            <summary>
            Incidence graph implementation
            </summary>
        </member>
        <member name="M:TestFu.Data.Graph.DataGraph.AdjacentEdgesEmpty(TestFu.Data.Graph.DataTableVertex)">
            <summary>
            Gets a value indicating if the set of edges connected to v is empty
            </summary>
            <remarks>
            <para>
            Usually faster that calling <see cref="M:TestFu.Data.Graph.DataGraph.Degree(TestFu.Data.Graph.DataTableVertex)"/>.
            </para>
            </remarks>
            <value>
            true if the adjacent edge set is empty, false otherwise.
            </value>
            <exception cref="T:System.ArgumentNullException">v is a null reference</exception>
        </member>
        <member name="M:TestFu.Data.Graph.DataGraph.Degree(TestFu.Data.Graph.DataTableVertex)">
            <summary>
            Returns the number of in-edges plus out-edges.
            </summary>
            <param name="v"></param>
            <returns></returns>
        </member>
        <member name="M:TestFu.Data.Graph.DataGraph.SelectSingleInEdge(TestFu.Data.Graph.DataTableVertex,QuickGraph.Concepts.Predicates.IEdgePredicate)">
            <summary>
            Returns the first in-edge that matches the predicate
            </summary>
            <param name="v"></param>
            <param name="ep">Edge predicate</param>
            <returns>null if not found, otherwize the first Edge that
            matches the predicate.</returns>
            <exception cref="T:System.ArgumentNullException">v or ep is null</exception>
        </member>
        <member name="M:TestFu.Data.Graph.DataGraph.SelectInEdges(TestFu.Data.Graph.DataTableVertex,QuickGraph.Concepts.Predicates.IEdgePredicate)">
            <summary>
            Returns the collection of in-edges that matches the predicate
            </summary>
            <param name="v"></param>
            <param name="ep">Edge predicate</param>
            <returns>enumerable colleciton of vertices that matches the 
            criteron</returns>
            <exception cref="T:System.ArgumentNullException">v or ep is null</exception>
        </member>
        <member name="M:TestFu.Data.Graph.DataGraph.QuickGraph#Concepts#Traversals#IFilteredBidirectionalGraph#SelectInEdges(QuickGraph.Concepts.IVertex,QuickGraph.Concepts.Predicates.IEdgePredicate)">
            <summary>
            
            </summary>
            <param name="v"></param>
            <param name="ep"></param>
            <returns></returns>
        </member>
        <member name="M:TestFu.Data.Graph.DataGraph.RemoveInEdgeIf(TestFu.Data.Graph.DataTableVertex,QuickGraph.Concepts.Predicates.IEdgePredicate)">
            <summary>
            Remove all the out-edges of vertex u for which the predicate pred 
            returns true.
            </summary>
            <param name="u">vertex</param>
            <param name="pred">edge predicate</param>
        </member>
        <member name="P:TestFu.Data.Graph.DataGraph.IsDirected">
            <summary>
            Gets a value indicating if the <see cref="T:TestFu.Data.Graph.DataGraph"/> 
            is directed.
            </summary>
            <value>
            true if the graph is directed, false if undirected.
            </value>
        </member>
        <member name="P:TestFu.Data.Graph.DataGraph.AllowParallelEdges">
            <summary>
            Gets a value indicating if the <see cref="T:TestFu.Data.Graph.DataGraph"/> allows parallel edges.
            </summary>
            <value>
            true if the <see cref="T:TestFu.Data.Graph.DataGraph"/> is a multi-graph, false otherwise
            </value>
        </member>
        <member name="P:TestFu.Data.Graph.DataGraph.VertexProvider">
            <summary>
            Gets the <see cref="T:TestFu.Data.Graph.DataTableVertex"/> provider
            </summary>
            <value>
            <see cref="T:TestFu.Data.Graph.DataTableVertex"/> provider
            </value>
        </member>
        <member name="P:TestFu.Data.Graph.DataGraph.EdgeProvider">
            <summary>
            Gets the <see cref="T:TestFu.Data.Graph.DataRelationEdge"/> provider
            </summary>
            <value>
            <see cref="T:TestFu.Data.Graph.DataRelationEdge"/> provider
            </value>
        </member>
        <member name="P:TestFu.Data.Graph.DataGraph.VerticesEmpty">
            <summary>
            Gets a value indicating if the vertex set is empty
            </summary>
            <para>
            Usually faster (O(1)) that calling <c>VertexCount</c>.
            </para>
            <value>
            true if the vertex set is empty, false otherwise.
            </value>
        </member>
        <member name="P:TestFu.Data.Graph.DataGraph.VerticesCount">
            <summary>
            Gets the number of vertices
            </summary>
            <value>
            Number of vertices in the graph
            </value>
        </member>
        <member name="P:TestFu.Data.Graph.DataGraph.Vertices">
            <summary>
            Enumerable collection of vertices.
            </summary>
        </member>
        <member name="P:TestFu.Data.Graph.DataGraph.EdgesEmpty">
            <summary>
            Gets a value indicating if the vertex set is empty
            </summary>
            <remarks>
            <para>
            Usually faster that calling <see cref="P:TestFu.Data.Graph.DataGraph.EdgesCount"/>.
            </para>
            </remarks>
            <value>
            true if the vertex set is empty, false otherwise.
            </value>
        </member>
        <member name="P:TestFu.Data.Graph.DataGraph.EdgesCount">
            <summary>
            Gets the edge count
            </summary>
            <remarks>
            Edges count
            </remarks>
        </member>
        <member name="P:TestFu.Data.Graph.DataGraph.Edges">
            <summary>
            Enumerable collection of edges.
            </summary>
        </member>
        <member name="M:TestFu.Data.Graph.DataGraph.DataRelationEdgeCollection.#ctor">
            <summary>
            Initializes a new empty instance of the 
            <see cref="T:TestFu.Data.Graph.DataGraph.DataRelationEdgeCollection"/> class.
            </summary>
        </member>
        <member name="M:TestFu.Data.Graph.DataGraph.DataRelationEdgeCollection.Add(TestFu.Data.Graph.DataRelationEdge)">
            <summary>
            Adds an instance of type <see cref="T:TestFu.Data.Graph.DataRelationEdge"/> to the end of this 
            <see cref="T:TestFu.Data.Graph.DataGraph.DataRelationEdgeCollection"/>.
            </summary>
            <param name="value">
            The Edge to be added to the end of this EdgeCollection.
            </param>
        </member>
        <member name="M:TestFu.Data.Graph.DataGraph.DataRelationEdgeCollection.Remove(QuickGraph.Concepts.IEdge)">
            <summary>
            Removes the first occurrence of a specific Edge from this EdgeCollection.
            </summary>
            <param name="value">
            The Edge value to remove from this EdgeCollection.
            </param>
        </member>
        <member name="M:TestFu.Data.Graph.DataGraph.DataRelationEdgeCollection.Contains(TestFu.Data.Graph.DataRelationEdge)">
            <summary>
            Determines whether a specfic <see cref="T:TestFu.Data.Graph.DataRelationEdge"/> value is in this EdgeCollection.
            </summary>
            <param name="value">
            edge value to locate in this <see cref="T:TestFu.Data.Graph.DataGraph.DataRelationEdgeCollection"/>.
            </param>
            <returns>
            true if value is found in this collection;
            false otherwise.
            </returns>
        </member>
        <member name="M:TestFu.Data.Graph.DataGraph.DataRelationEdgeCollection.GetEnumerator">
            <summary>
            Returns an enumerator that can iterate through the elements of this EdgeCollection.
            </summary>
            <returns>
            An object that implements System.Collections.IEnumerator.
            </returns>        
        </member>
        <member name="P:TestFu.Data.Graph.DataGraph.DataRelationEdgeCollection.Item(System.Int32)">
            <summary>
            Gets or sets the Edge at the given index in this EdgeCollection.
            </summary>
        </member>
        <member name="M:TestFu.Data.Graph.DataGraph.DataRelationEdgeCollection.DataRelationEdgeEnumerator.#ctor(TestFu.Data.Graph.DataGraph.DataRelationEdgeCollection)">
            <summary>
            Create a new enumerator on the collection
            </summary>
            <param name="collection">collection to enumerate</param>
        </member>
        <member name="M:TestFu.Data.Graph.DataGraph.DataRelationEdgeCollection.DataRelationEdgeEnumerator.MoveNext">
            <summary>
            Moves cursor to next element.
            </summary>
            <returns>true if current is valid, false otherwize</returns>
        </member>
        <member name="M:TestFu.Data.Graph.DataGraph.DataRelationEdgeCollection.DataRelationEdgeEnumerator.Reset">
            <summary>
            Resets the cursor to the position before the first element.
            </summary>
        </member>
        <member name="P:TestFu.Data.Graph.DataGraph.DataRelationEdgeCollection.DataRelationEdgeEnumerator.Current">
            <summary>
            The current element. 
            </summary>
        </member>
        <member name="T:TestFu.Data.Graph.DataGraphPopulator">
            <summary>
            A populator of <see cref="T:TestFu.Data.Graph.DataGraph"/> instance.	
            </summary>
        </member>
        <member name="T:TestFu.Data.Graph.DataRelationEdge">
            <summary>
            A <see cref="T:QuickGraph.Concepts.IEdge"/> with a <see cref="T:System.Data.DataRelation"/> instance.
            </summary>
        </member>
        <member name="T:TestFu.Data.ICheckValidator">
            <summary>
            A validator check checks constraints
            </summary>
        </member>
        <member name="M:TestFu.Data.ICheckValidator.Enforce(System.Data.DataRow)">
            <summary>
            Preprocesses the row modifies it to fullfill the constraint
            </summary>
            <param name="row"></param>
        </member>
        <member name="T:TestFu.Data.IDatabasePopulator">
            <summary>
            A database populator instance.
            </summary>
            <!-- No matching elements were found for the following include tag --><include file="Data/TestFu.Data.Doc.xml" path="//example[contains(descendant-or-self::*,&quot;IDatabasePopulator&quot;)]"/>
        </member>
        <member name="M:TestFu.Data.IDatabasePopulator.Populate(System.Data.DataSet)">
            <summary>
            Sets up the generators for the given <see cref="P:TestFu.Data.IDatabasePopulator.DataSet"/>
            instance.
            </summary>
            <param name="dataSet">
            A <see cref="P:TestFu.Data.IDatabasePopulator.DataSet"/> representing the structure of the 
            database to populate.
            </param>
            <exception cref="T:System.ArgumentNullException">
            <paramref name="dataSet"/> is a null reference (Nothing in 
            Visual Basic)
            </exception>
        </member>
        <member name="P:TestFu.Data.IDatabasePopulator.DataSet">
            <summary>
            Gets the <see cref="P:TestFu.Data.IDatabasePopulator.DataSet"/> instance associated
            to this populator.
            </summary>
            <value>
            A <see cref="P:TestFu.Data.IDatabasePopulator.DataSet"/> schema used to set-up the generators.
            </value>
        </member>
        <member name="P:TestFu.Data.IDatabasePopulator.Tables">
            <summary>
            Gets a collection <see cref="T:TestFu.Data.ITablePopulator"/> associated
            to each table.
            </summary>
            <value>
            A <see cref="T:TestFu.Data.ITablePopulatorCollection"/> containing
            populator associated to each <see cref="T:System.Data.DataTable"/>.
            </value>
        </member>
        <member name="P:TestFu.Data.IDatabasePopulator.Graph">
            <summary>
            Gets the <see cref="T:TestFu.Data.Graph.DataGraph"/> associated to the
            database.
            </summary>
            <value></value>
        </member>
        <member name="T:TestFu.Data.IForeignKeyProvider">
            <summary>
            An instance that can fill a <see cref="T:System.Data.DataRow"/> with
            data that are compatible with a 
            given <see cref="T:System.Data.ForeignKeyConstraint"/>.
            </summary>
            <!-- No matching elements were found for the following include tag --><include file="Data/TestFu.Data.Doc.xml" path="//example[contains(descendant-or-self::*,&quot;IForeignKeyProvider&quot;)]"/>
        </member>
        <member name="M:TestFu.Data.IForeignKeyProvider.Provide(System.Data.DataRow)">
            <summary>
            Fill the row with data that is compatible with
            the foreign key.
            </summary>
            <param name="row">
            <see cref="T:System.Data.DataRow"/> instance to fill.
            </param>
            <exception cref="T:System.ArgumentNullException">
            <paramref name="row"/> is a null reference (Nothing
            in Visual Basic).
            </exception>
        </member>
        <member name="P:TestFu.Data.IForeignKeyProvider.ForeignTable">
            <summary>
            Gets the table populator associated to the foreign table.
            </summary>
            <value>
            The <see cref="T:TestFu.Data.ITablePopulator"/> instance
            associated to the foreign
            table.
            </value>
        </member>
        <member name="P:TestFu.Data.IForeignKeyProvider.ForeignKey">
            <summary>
            Gets the foreign constraint that needs to be satisfied.
            </summary>
            <value>
            The <see cref="T:System.Data.ForeignKeyConstraint"/> associated to this
            provider.
            </value>
        </member>
        <member name="P:TestFu.Data.IForeignKeyProvider.IsEmpty">
            <summary>
            Gets a value indicating that the foreign table is empty and
            cannot provide keys.
            </summary>
            <value>
            true if the foreign table is empty; otherwise false.
            </value>
        </member>
        <member name="T:TestFu.Data.ITablePopulator">
            <summary>
            An random <see cref="T:System.Data.DataRow"/> generator compatible with the schema
            of a given <see cref="T:System.Data.DataTable"/>.
            </summary>
            <example>
<para>
This example shows how the data generator can be used to create unit tests on database. In this example,
we setup the dummy <see cref="T:System.Data.DataSet"/> <c>UserOrderProductDatabase</c> and
the populator in the <c>SetUp</c> method.
</para>
<code>
using System;
using System.Data;
using MbUnit.Core.Framework;
using MbUnit.Framework;
using TestFu.Data;
using TestFu.Data.Populators;

namespace TestFu.Tests.Data
{
	[TestFixture]
	public class DatabasePopulatorTest
	{
		private UserOrderProductDatabase db;
		private DatabasePopulator pop;
		private ITablePopulator users;
		private ITablePopulator orders;
		private ITablePopulator products;
		private ITablePopulator orderProducts;
	
		[SetUp]
		public void SetUp()
		{
			this.db=new UserOrderProductDatabase();
			this.pop = new DatabasePopulator();
			this.pop.Populate(this.db.DataSet);

			this.users=this.pop.Tables[this.db.Users];
			this.orders=this.pop.Tables[this.db.Orders];
			this.products=this.pop.Tables[this.db.Products];
			this.orderProducts=this.pop.Tables[this.db.OrderProducts];
		}

		[Test]
		public void AddOneUser()
		{
			DataRow row = users.Generate();
			this.db.Users.Rows.Add(row);
		}

		[Test]
		public void AddOneUserOneOrder()
		{
			this.AddOneUser();
			DataRow row = orders.Generate();
			this.db.Orders.Rows.Add(row);
		}

		[Test]
		[ExpectedException(typeof(InvalidOperationException))]
		public void AddOneOrder()
		{
			DataRow row = orders.Generate();
		}

		[Test]
		[ExpectedException(typeof(InvalidOperationException))]
		public void AddOneOrderProduct()
		{
			DataRow row = orderProducts.Generate();
		}

		[Test]
		public void AddOneUserOneOrderOneProduct()
		{
			this.AddOneUserOneOrder();

			DataRow row = products.Generate();
			this.db.Products.Rows.Add(row);
		}

		[Test]
		public void AddOneUserOneOrderOneProductOneProductOrder()
		{
			this.AddOneUserOneOrderOneProduct();
			DataRow row=orderProducts.Generate();
			this.db.OrderProducts.Rows.Add(row);
		}

		[Test]
		public void AddTwoUsers()
		{
			AddOneUser();
			AddOneUser();
		}

		[TearDown]
		public void Check()
		{
			this.db.AcceptChanges();
			Console.WriteLine(db.ToString());
		}
	}
}
</code>
</example>
        </member>
        <member name="M:TestFu.Data.ITablePopulator.Generate">
            <summary>
            Generates a new <see cref="T:System.Data.DataRow"/>.
            </summary>
            <returns>
            Generated <see cref="T:System.Data.DataRow"/> instance.
            </returns>
        </member>
        <member name="M:TestFu.Data.ITablePopulator.ChangeRowValues(System.Data.DataRow)">
            <summary>
            Updates randomly a number of rows
            </summary>
            <param name="row"></param>
        </member>
        <member name="M:TestFu.Data.ITablePopulator.ChangeRowValues(System.Data.DataRow,System.Boolean)">
            <summary>
            Updates randomly a number of rows
            </summary>
            <param name="row"></param>
        </member>
        <member name="P:TestFu.Data.ITablePopulator.Database">
            <summary>
            Gets an instance of the <see cref="T:TestFu.Data.IDatabasePopulator"/>$
            that contains this populator.
            </summary>
            <value>
            Parent <see cref="T:TestFu.Data.IDatabasePopulator"/> instance.
            </value>
        </member>
        <member name="P:TestFu.Data.ITablePopulator.Table">
            <summary>
            Gets the <see cref="T:System.Data.DataTable"/> instance that is the model
            to be populated.
            </summary>
            <value>
            A <see cref="T:System.Data.DataTable"/> instance whos schema is used to create
            new <see cref="T:System.Data.DataRow"/>.
            </value>
        </member>
        <member name="P:TestFu.Data.ITablePopulator.Uniques">
            <summary>
            Gets a collection of <see cref="T:TestFu.Data.IUniqueValidator"/>
            associated to each <see cref="T:System.Data.UniqueConstraint"/>.
            </summary>
            <value>
            A <see cref="T:TestFu.Data.IUniqueValidatorCollection"/> instance
            containing the validators associated to each unique constraint.
            </value>
        </member>
        <member name="P:TestFu.Data.ITablePopulator.ForeignKeys">
            <summary>
            Gets a collection of <see cref="T:TestFu.Data.IForeignKeyProvider"/>
            associated to each <see cref="T:System.Data.ForeignKeyConstraint"/>.
            </summary>
            <value>
            A <see cref="T:TestFu.Data.IForeignKeyProviderCollection"/> instance
            containing the providers associated to each foreign key.
            </value>
        </member>
        <member name="P:TestFu.Data.ITablePopulator.Columns">
            <summary>
            Gets a collection of <see cref="T:TestFu.Data.IDataGenerator"/> associated
            to each column of the table.
            </summary>
            <value>
            A <see cref="T:TestFu.Data.IDataGeneratorCollection"/> instance
            containing the generators associated to each column.
            </value>
        </member>
        <member name="P:TestFu.Data.ITablePopulator.CheckValidator">
            <summary>
            Gets the <see cref="T:TestFu.Data.ICheckValidator"/> that ensures CHECK constraints.
            </summary>
            <value>
            A <see cref="T:TestFu.Data.ICheckValidator"/> instance if any check constraint to verify;
            otherwize a null reference.
            </value>
        </member>
        <member name="P:TestFu.Data.ITablePopulator.Row">
            <summary>
            Gets the latest generated <see cref="T:System.Data.DataRow"/>.
            </summary>
            <value>
            Latest generated <see cref="T:System.Data.DataRow"/>.
            </value>
        </member>
        <member name="T:TestFu.Data.IUniqueValidator">
            <summary>
            A validator for <see cref="T:System.Data.UniqueConstraint"/> constraints.
            </summary>
            <!-- No matching elements were found for the following include tag --><include file="Data/TestFu.Data.Doc.xml" path="//example[contains(descendant-or-self::*,&quot;IUniqueValidator&quot;)]"/>
        </member>
        <member name="T:TestFu.Data.NamespaceDoc">
            <summary>
            <para>
            The <b>TestFu.Data</b> namespace contains a 
            <b>Random <see cref="T:System.Data.DataRow"/> generator</b>
            to help developer test databases, data layers, business layers,
            etc...
            </para>
            </summary>
            <example name="SqlAdministrator">
<para>
This example shows some usage of the <see cref="T:TestFu.Data.DbAdministratorBase"/> class. This class can be used to easily backup, restore, create or drop
databases on a server. <see cref="T:TestFu.Data.SqlClient.SqlAdministrator"/> is the implementation for the MSSQL server:
<code>[C#]
using System;
using TestFu.Data;

public class Demo
{
	public static void Main(string[] args)
	{
		DbAdministrator admin = new SqlAdministrator("...");	
		
		// backup Northwind
		admin.Backup("Northwind",SqlBackupDevice.Disk,@"c:\Backups\Northwind.bkp");
		
		// drop Northwind
		admin.Drop("Northwind");
		
		// restore Northwind
		admin.Restore("Northwind",SqlBackupDevice.Disk,@"c:\Backups\Northwind.bkp");
	}
}
</code>
</para>
</example><example>
<para>The <c>DbFixture</c> (<c>SqlFixture</c> for MsSQL server) can be used as a base class for the 
fixtures involving database testing.
</para>
<code>[TestFixture]
public class DatabaseTest : SqlFixture
{
	public DatabaseTest()
	:base("Data Source=testserver;...","MyTestDatabase")
	{}
	
	[SetUp]
	public void SetUp()
	{
		this.Open();
		this.BeginTransaction();
	}
	
	[Test]
	public void Selec()
	{
		IDbCollection cmd = this.Connection.CreateCommand("select * from anytable",this.Transaction);
		...
	}
	
	[TearDown]
	public void TearDown()
	{
		this.Close();
	}
}</code>
</example><example>
<para>
This example shows how the data generator can be used to create unit tests on database. In this example,
we setup the dummy <see cref="T:System.Data.DataSet"/> <c>UserOrderProductDatabase</c> and
the populator in the <c>SetUp</c> method.
</para>
<code>
using System;
using System.Data;
using MbUnit.Core.Framework;
using MbUnit.Framework;
using TestFu.Data;
using TestFu.Data.Populators;

namespace TestFu.Tests.Data
{
	[TestFixture]
	public class DatabasePopulatorTest
	{
		private UserOrderProductDatabase db;
		private DatabasePopulator pop;
		private ITablePopulator users;
		private ITablePopulator orders;
		private ITablePopulator products;
		private ITablePopulator orderProducts;
	
		[SetUp]
		public void SetUp()
		{
			this.db=new UserOrderProductDatabase();
			this.pop = new DatabasePopulator();
			this.pop.Populate(this.db.DataSet);

			this.users=this.pop.Tables[this.db.Users];
			this.orders=this.pop.Tables[this.db.Orders];
			this.products=this.pop.Tables[this.db.Products];
			this.orderProducts=this.pop.Tables[this.db.OrderProducts];
		}

		[Test]
		public void AddOneUser()
		{
			DataRow row = users.Generate();
			this.db.Users.Rows.Add(row);
		}

		[Test]
		public void AddOneUserOneOrder()
		{
			this.AddOneUser();
			DataRow row = orders.Generate();
			this.db.Orders.Rows.Add(row);
		}

		[Test]
		[ExpectedException(typeof(InvalidOperationException))]
		public void AddOneOrder()
		{
			DataRow row = orders.Generate();
		}

		[Test]
		[ExpectedException(typeof(InvalidOperationException))]
		public void AddOneOrderProduct()
		{
			DataRow row = orderProducts.Generate();
		}

		[Test]
		public void AddOneUserOneOrderOneProduct()
		{
			this.AddOneUserOneOrder();

			DataRow row = products.Generate();
			this.db.Products.Rows.Add(row);
		}

		[Test]
		public void AddOneUserOneOrderOneProductOneProductOrder()
		{
			this.AddOneUserOneOrderOneProduct();
			DataRow row=orderProducts.Generate();
			this.db.OrderProducts.Rows.Add(row);
		}

		[Test]
		public void AddTwoUsers()
		{
			AddOneUser();
			AddOneUser();
		}

		[TearDown]
		public void Check()
		{
			this.db.AcceptChanges();
			Console.WriteLine(db.ToString());
		}
	}
}
</code>
</example><example name="UserOrderProduct">
<para>The following codes decribes a simple User - Order - Product database contains 4 tables:
Users, Orders, Products and OrderProducts.
</para>
<code>
using System;
using System.Data;
using System.IO;
using System.Xml;

namespace TestFu.Tests.Data
{
	public class UserOrderProductDatabase
	{
		private DataSet dataSet;
		private DataTable users;
		private DataColumn userID;
		private DataColumn userName;

		private DataTable orders;
		private DataColumn orderID;
		private DataColumn orderDate;
		private DataColumn oUserID;

		private DataTable products;
		private DataColumn productID;
		private DataColumn productName;
		private DataColumn productPrice;

		private DataTable orderProducts;
		private DataColumn opOrderID;
		private DataColumn opProductID;
		private DataColumn quantity;

		public UserOrderProductDatabase()
		{
			this.dataSet=new DataSet();

			this.users=this.dataSet.Tables.Add("Users");
			this.userID = this.users.Columns.Add("UserID",typeof(int));
			this.userName=this.Users.Columns.Add("UserName",typeof(string));
			this.userName.AllowDBNull=false;

			this.orders=this.dataSet.Tables.Add("Orders");
			this.orderID=this.orders.Columns.Add("OrderID",typeof(int));
			this.orderDate = this.orders.Columns.Add("OrderDate",typeof(DateTime));
			this.oUserID = this.orders.Columns.Add("UserID",typeof(int));

			this.products=this.dataSet.Tables.Add("Products");
			this.productID=this.products.Columns.Add("ProductID",typeof(int));
			this.productName = this.products.Columns.Add("ProductName",typeof(string));
			this.productPrice = this.products.Columns.Add("ProductPrice",typeof(decimal));

			this.orderProducts=this.dataSet.Tables.Add("OrderProducts");
			this.opOrderID=this.orderProducts.Columns.Add("OrderID",typeof(int));
			this.opProductID=this.orderProducts.Columns.Add("ProductID",typeof(int));
			this.quantity=this.orderProducts.Columns.Add("Quantity",typeof(int));

			// pks
			users.Constraints.Add("PK_Users",userID,true);
			orders.Constraints.Add("PK_Orders",orderID,true);
			products.Constraints.Add("PK_Products",productID,true);
			orderProducts.Constraints.Add("PK_OrderProducts",
				new DataColumn[]{ opOrderID, opProductID}
				,true);

			// fks
			orders.Constraints.Add("FK_Orders_Users",userID,oUserID);
			orderProducts.Constraints.Add("FK_OrderProducts_Orders",orderID,opOrderID);
			orderProducts.Constraints.Add("FK_OrderProducts_Products",productID,opProductID);
		}
	}
}
</code>
</example>
        </member>
        <member name="T:TestFu.Data.Populators.DatabasePopulator">
            <summary>
            Default <see cref="T:TestFu.Data.IDatabasePopulator"/> implementation.
            </summary>
            <example>
<para>
This example shows how the data generator can be used to create unit tests on database. In this example,
we setup the dummy <see cref="T:System.Data.DataSet"/> <c>UserOrderProductDatabase</c> and
the populator in the <c>SetUp</c> method.
</para>
<code>
using System;
using System.Data;
using MbUnit.Core.Framework;
using MbUnit.Framework;
using TestFu.Data;
using TestFu.Data.Populators;

namespace TestFu.Tests.Data
{
	[TestFixture]
	public class DatabasePopulatorTest
	{
		private UserOrderProductDatabase db;
		private DatabasePopulator pop;
		private ITablePopulator users;
		private ITablePopulator orders;
		private ITablePopulator products;
		private ITablePopulator orderProducts;
	
		[SetUp]
		public void SetUp()
		{
			this.db=new UserOrderProductDatabase();
			this.pop = new DatabasePopulator();
			this.pop.Populate(this.db.DataSet);

			this.users=this.pop.Tables[this.db.Users];
			this.orders=this.pop.Tables[this.db.Orders];
			this.products=this.pop.Tables[this.db.Products];
			this.orderProducts=this.pop.Tables[this.db.OrderProducts];
		}

		[Test]
		public void AddOneUser()
		{
			DataRow row = users.Generate();
			this.db.Users.Rows.Add(row);
		}

		[Test]
		public void AddOneUserOneOrder()
		{
			this.AddOneUser();
			DataRow row = orders.Generate();
			this.db.Orders.Rows.Add(row);
		}

		[Test]
		[ExpectedException(typeof(InvalidOperationException))]
		public void AddOneOrder()
		{
			DataRow row = orders.Generate();
		}

		[Test]
		[ExpectedException(typeof(InvalidOperationException))]
		public void AddOneOrderProduct()
		{
			DataRow row = orderProducts.Generate();
		}

		[Test]
		public void AddOneUserOneOrderOneProduct()
		{
			this.AddOneUserOneOrder();

			DataRow row = products.Generate();
			this.db.Products.Rows.Add(row);
		}

		[Test]
		public void AddOneUserOneOrderOneProductOneProductOrder()
		{
			this.AddOneUserOneOrderOneProduct();
			DataRow row=orderProducts.Generate();
			this.db.OrderProducts.Rows.Add(row);
		}

		[Test]
		public void AddTwoUsers()
		{
			AddOneUser();
			AddOneUser();
		}

		[TearDown]
		public void Check()
		{
			this.db.AcceptChanges();
			Console.WriteLine(db.ToString());
		}
	}
}
</code>
</example>
        </member>
        <member name="M:TestFu.Data.Populators.DatabasePopulator.#ctor">
            <summary>
            Initiliazes a <see cref="T:TestFu.Data.Populators.DatabasePopulator"/> instance.
            </summary>
        </member>
        <member name="T:TestFu.Data.Populators.DbCommandUniqueValidatorBase">
            <summary>
            A <see cref="T:TestFu.Data.IUniqueValidator"/> querying the databse.
            </summary>
            <!-- No matching elements were found for the following include tag --><include file="Data/TestFu.Data.Doc.xml" path="//example[contains(descendant-or-self::*,&quot;DbCommandUniqueValidator&quot;)]"/>
        </member>
        <member name="T:TestFu.Data.Populators.UniqueValidatorBase">
            <summary>
            Base class for <see cref="T:TestFu.Data.IUniqueValidator"/> implementation.
            </summary>
            <!-- No matching elements were found for the following include tag --><include file="Data/TestFu.Data.Doc.xml" path="//example[contains(descendant-or-self::*,&quot;UniqueValidatorBase&quot;)]"/>
        </member>
        <member name="T:TestFu.Data.Populators.DictionaryUniqueValidator">
            <summary>
            A <see cref="T:TestFu.Data.IUniqueValidator"/> based on a <see cref="T:System.Collections.IDictionary"/>.
            </summary>
            <!-- No matching elements were found for the following include tag --><include file="Data/TestFu.Data.Doc.xml" path="//example[contains(descendant-or-self::*,&quot;DictionaryUniqueValidator&quot;)]"/>
        </member>
        <member name="T:TestFu.Data.Populators.ForeignKeyProvider">
            <summary>
            Default implementation of <see cref="T:TestFu.Data.IForeignKeyProvider"/>
            </summary>
            <!-- No matching elements were found for the following include tag --><include file="Data/TestFu.Data.Doc.xml" path="//example[contains(descendant-or-self::*,&quot;ForeignKeyProvider&quot;)]"/>
        </member>
        <member name="T:TestFu.Data.Populators.ForeignKeyProviderBase">
            <summary>
            Default implementation of <see cref="T:TestFu.Data.IForeignKeyProvider"/>
            </summary>
            <!-- No matching elements were found for the following include tag --><include file="Data/TestFu.Data.Doc.xml" path="//example[contains(descendant-or-self::*,&quot;ForeignKeyProviderBase&quot;)]"/>
        </member>
        <member name="T:TestFu.Data.Populators.TablePopulator">
            <summary>
            An smart random <see cref="T:System.Data.DataRow"/> generator.
            </summary>
            <example>
<para>
This example shows how the data generator can be used to create unit tests on database. In this example,
we setup the dummy <see cref="T:System.Data.DataSet"/> <c>UserOrderProductDatabase</c> and
the populator in the <c>SetUp</c> method.
</para>
<code>
using System;
using System.Data;
using MbUnit.Core.Framework;
using MbUnit.Framework;
using TestFu.Data;
using TestFu.Data.Populators;

namespace TestFu.Tests.Data
{
	[TestFixture]
	public class DatabasePopulatorTest
	{
		private UserOrderProductDatabase db;
		private DatabasePopulator pop;
		private ITablePopulator users;
		private ITablePopulator orders;
		private ITablePopulator products;
		private ITablePopulator orderProducts;
	
		[SetUp]
		public void SetUp()
		{
			this.db=new UserOrderProductDatabase();
			this.pop = new DatabasePopulator();
			this.pop.Populate(this.db.DataSet);

			this.users=this.pop.Tables[this.db.Users];
			this.orders=this.pop.Tables[this.db.Orders];
			this.products=this.pop.Tables[this.db.Products];
			this.orderProducts=this.pop.Tables[this.db.OrderProducts];
		}

		[Test]
		public void AddOneUser()
		{
			DataRow row = users.Generate();
			this.db.Users.Rows.Add(row);
		}

		[Test]
		public void AddOneUserOneOrder()
		{
			this.AddOneUser();
			DataRow row = orders.Generate();
			this.db.Orders.Rows.Add(row);
		}

		[Test]
		[ExpectedException(typeof(InvalidOperationException))]
		public void AddOneOrder()
		{
			DataRow row = orders.Generate();
		}

		[Test]
		[ExpectedException(typeof(InvalidOperationException))]
		public void AddOneOrderProduct()
		{
			DataRow row = orderProducts.Generate();
		}

		[Test]
		public void AddOneUserOneOrderOneProduct()
		{
			this.AddOneUserOneOrder();

			DataRow row = products.Generate();
			this.db.Products.Rows.Add(row);
		}

		[Test]
		public void AddOneUserOneOrderOneProductOneProductOrder()
		{
			this.AddOneUserOneOrderOneProduct();
			DataRow row=orderProducts.Generate();
			this.db.OrderProducts.Rows.Add(row);
		}

		[Test]
		public void AddTwoUsers()
		{
			AddOneUser();
			AddOneUser();
		}

		[TearDown]
		public void Check()
		{
			this.db.AcceptChanges();
			Console.WriteLine(db.ToString());
		}
	}
}
</code>
</example>
        </member>
        <member name="T:TestFu.Data.SqlClient.SqlAdministrator">
            <summary>
            Helper class to performe task on a SQL server.
            </summary>
            <example name="SqlAdministrator">
<para>
This example shows some usage of the <see cref="T:TestFu.Data.DbAdministratorBase"/> class. This class can be used to easily backup, restore, create or drop
databases on a server. <see cref="T:TestFu.Data.SqlClient.SqlAdministrator"/> is the implementation for the MSSQL server:
<code>[C#]
using System;
using TestFu.Data;

public class Demo
{
	public static void Main(string[] args)
	{
		DbAdministrator admin = new SqlAdministrator("...");	
		
		// backup Northwind
		admin.Backup("Northwind",SqlBackupDevice.Disk,@"c:\Backups\Northwind.bkp");
		
		// drop Northwind
		admin.Drop("Northwind");
		
		// restore Northwind
		admin.Restore("Northwind",SqlBackupDevice.Disk,@"c:\Backups\Northwind.bkp");
	}
}
</code>
</para>
</example>
        </member>
        <member name="M:TestFu.Data.SqlClient.SqlAdministrator.#ctor(System.String,System.String)">
            <summary>
            Initializes an instance of <see cref="T:TestFu.Data.SqlClient.SqlAdministrator"/> with the connection string.
            </summary>
            <param name="connectionString">
            Connection string to the SQL server without initial catalog
            </param>
            <param name="databaseName">
            Catalog name
            </param>
            <exception cref="T:System.ArgumentNullException">
            <paramref name="connectionString"/> is a null reference (Nothing in Visual Basic)
            </exception>
        </member>
        <member name="M:TestFu.Data.SqlClient.SqlAdministrator.BackupDatabase(TestFu.Data.DbBackupDevice,System.String)">
            <summary>
            Creates a backup of the specified database using the specified <paramref name="device"/> 
            and <paramref name="destination"/>.
            </summary>
            <param name="device">
            A <see cref="T:TestFu.Data.DbBackupDevice"/> defining the type of output device.
            </param>
            <param name="destination">
            Device path.
            </param>
            <exception cref="T:System.ArgumentNullException">
            <paramref name="destination"/> is a null
            reference (Nothing in Visual Basic)
            </exception>
        </member>
        <member name="M:TestFu.Data.SqlClient.SqlAdministrator.RestoreDatabase(TestFu.Data.DbBackupDevice,System.String)">
            <summary>
            Restores a backup of the specified database using the specified <paramref name="device"/> 
            and <paramref name="destination"/>.
            </summary>
            <param name="device">
            A <see cref="T:TestFu.Data.DbBackupDevice"/> defining the type of output device.
            </param>
            <param name="destination">
            Device path.
            </param>
            <exception cref="T:System.ArgumentNullException">
            <paramref name="destination"/> is a null
            reference (Nothing in Visual Basic)
            </exception>
            <remarks>
            <para>
            If you plan to override an existing database, you must first drop this database.
            This method takes a conservative behavior and will not override an existing database.
            </para>
            <para>
            Priorly to restore the database, the method kills all the processes associeted
            to the database.
            </para>
            </remarks>
        </member>
        <member name="M:TestFu.Data.SqlClient.SqlAdministrator.CreateDatabase">
            <summary>
            Creates a new database on the server
            </summary>
        </member>
        <member name="M:TestFu.Data.SqlClient.SqlAdministrator.DropDatabase">
            <summary>
            Drops an existing new database on the server
            </summary>
            <exception cref="T:System.ArgumentNullException">
            <paramref name="databaseName"/> is a null
            reference (Nothing in Visual Basic)
            </exception>		
        </member>
        <member name="P:TestFu.Data.SqlClient.SqlAdministrator.DatabaseConnectionString">
            <summary>
            Gets the connection string with Initial Catalog information.
            </summary>
            <value>
            Connection string with Initial catalog information.
            </value>
        </member>
        <member name="T:TestFu.Data.SqlClient.SqlFactory">
            <summary>
            A <see cref="T:TestFu.Data.IDbFactory"/> implementation for MSSQL server.
            </summary>
            <!-- No matching elements were found for the following include tag --><include file="Data/TestFu.Data.Doc.xml" path="//example[contains(descendant-or-self::*,&quot;SqlFactory&quot;)]"/>
        </member>
        <member name="M:TestFu.Data.SqlClient.SqlFactory.CreateAdmin(System.String,System.String)">
            <summary>
            Creates a <see cref="T:TestFu.Data.SqlClient.SqlAdministrator"/> instance.
            </summary>
            <param name="connectionString"></param>
            <param name="databaseName"></param>
            <returns></returns>
        </member>
        <member name="M:TestFu.Data.SqlClient.SqlFactory.CreateConnection(System.String)">
            <summary>
            Creates a <see cref="T:System.Data.IDbConnection"/> instance.
            </summary>
            <param name="connectionString">
            Connection string to server
            </param>
            <returns>
            A <see cref="T:System.Data.IDbConnection"/> instance.
            </returns>
        </member>
        <member name="T:TestFu.Data.SqlClient.SqlFixture">
            <summary>
            Abstract  base class for MSSQL server database testing.
            </summary>
            <example>
<para>The <c>DbFixture</c> (<c>SqlFixture</c> for MsSQL server) can be used as a base class for the 
fixtures involving database testing.
</para>
<code>[TestFixture]
public class DatabaseTest : SqlFixture
{
	public DatabaseTest()
	:base("Data Source=testserver;...","MyTestDatabase")
	{}
	
	[SetUp]
	public void SetUp()
	{
		this.Open();
		this.BeginTransaction();
	}
	
	[Test]
	public void Selec()
	{
		IDbCollection cmd = this.Connection.CreateCommand("select * from anytable",this.Transaction);
		...
	}
	
	[TearDown]
	public void TearDown()
	{
		this.Close();
	}
}</code>
</example>
        </member>
        <member name="M:TestFu.Data.SqlClient.SqlFixture.#ctor(System.String,System.String)">
            <summary>
            Initializes a <see cref="T:TestFu.Data.DbFixture"/> with a connection string.
            </summary>
            <param name="connectionString">
            Connection string for accessing the test database.
            </param>
            <param name="database">
            database name
            </param>
            <exception cref="T:System.ArgumentNullException">
            <paramref name="connectionString"/> is a null reference
            (Nothing in Visual Basic)
            </exception>
        </member>
        <member name="P:TestFu.Data.SqlClient.SqlFixture.Connection">
            <summary>
            Gets the current connection instance.
            </summary>
            <value>
            <see cref="T:System.Data.SqlClient.SqlConnection"/> instance.
            </value>
        </member>
        <member name="P:TestFu.Data.SqlClient.SqlFixture.Transaction">
            <summary>
            Gets the current transaction.
            </summary>
            <value>
            A <see cref="T:System.Data.SqlClient.SqlTransaction"/> instance if <see cref="M:TestFu.Data.DbFixture.BeginTransaction"/> was called
            and the connection not closed; otherwise, a null reference (Nothing in Visual Basic)
            </value>
        </member>
        <member name="T:TestFu.Forms.ScreenCapture">
            <summary>
            Provides functions to capture the entire screen, or a particular window, and save it to a file.
            </summary>
            <remarks>
            <para>
            Source code takened from 
            http://www.developerfusion.com/show/4630/
            </para>
            </remarks>
        </member>
        <member name="M:TestFu.Forms.ScreenCapture.CaptureDesktop">
            <summary>
            Creates an Image object containing a screen shot of the entire desktop
            </summary>
            <returns></returns>
        </member>
        <member name="M:TestFu.Forms.ScreenCapture.CaptureMainWindow">
            <summary>
            Creates an Image object containing a screen shot of the entire desktop
            </summary>
            <returns></returns>
        </member>
        <member name="M:TestFu.Forms.ScreenCapture.Capture(System.Windows.Forms.Control)">
            <summary>
            Creates an Image object containing a screen shot of the <see cref="T:System.Windows.Forms.Control"/>
            </summary>
        </member>
        <member name="M:TestFu.Forms.ScreenCapture.Capture(System.IntPtr)">
            <summary>
            Creates an Image object containing a screen shot of a specific window
            </summary>
            <param name="handle">The handle to the window. (In windows forms, this is obtained by the Handle property)</param>
            <returns></returns>
        </member>
        <member name="T:TestFu.Forms.ScreenCapture.GDI32">
            <summary>
            Helper class containing Gdi32 API functions
            </summary>
        </member>
        <member name="T:TestFu.Forms.ScreenCapture.User32">
            <summary>
            Helper class containing User32 API functions
            </summary>
        </member>
        <member name="T:TestFu.Gestures.ButtonDownMouseGesture">
            <summary>
            A <see cref="T:TestFu.Gestures.IMouseGesture"/> that simulates a MouseDown event.
            </summary>
        </member>
        <member name="T:TestFu.Gestures.MouseGestureBase">
            <summary>
            Abstract base class for <see cref="T:TestFu.Gestures.IMouseGesture"/>
            instance.
            </summary>
        </member>
        <member name="T:TestFu.Gestures.GestureBase">
            <summary>
            Abstract base class for <see cref="T:TestFu.Gestures.IGesture"/>
            implementation.
            </summary>
        </member>
        <member name="T:TestFu.Gestures.IGesture">
            <summary>
            A user gesture.
            </summary>
            <remarks>
            <para>
            User gesture can be a combination of keyboard or mouse
            interactions.
            </para>
            </remarks>
        </member>
        <member name="M:TestFu.Gestures.IGesture.Start">
            <summary>
            Executes the gesture
            </summary>
            <remarks>
            <para>
            This method should be executed on separate thread
            from the main thread, otherwize event will not be
            fired correctly.
            </para>
            </remarks>
        </member>
        <member name="M:TestFu.Gestures.IGesture.ToCodeDom(Refly.CodeDom.Expressions.Expression)">
            <summary>
            Gets the CodeDom statement creating this gesture
            </summary>
            <returns></returns>
        </member>
        <member name="P:TestFu.Gestures.IGesture.Form">
            <summary>
            Gets the <see cref="P:TestFu.Gestures.IGesture.Form"/> that is targeted
            by the gesture
            </summary>
            <value></value>
        </member>
        <member name="M:TestFu.Gestures.GestureBase.#ctor">
            <summary>
            Initializes an empty <see cref="T:TestFu.Gestures.IGesture"/>.
            </summary>
        </member>
        <member name="M:TestFu.Gestures.GestureBase.#ctor(System.Windows.Forms.Form)">
            <summary>
            Initializes a new <see cref="T:TestFu.Gestures.IGesture"/>
            instance with a form
            </summary>
            <param name="form"></param>
        </member>
        <member name="M:TestFu.Gestures.GestureBase.OnFormChanged(System.EventArgs)">
            <summary>
            Raises the <see cref="F:TestFu.Gestures.GestureBase.FormChanged"/> event.
            </summary>
            <param name="e"></param>
        </member>
        <member name="M:TestFu.Gestures.GestureBase.PointToScreen(System.Drawing.Point)">
            <summary>
            Converts the target from client to
            screen coordinates
            </summary>
            <param name="target">
            Position in client coordinates</param>
            <returns>
            Position converted into screen coordinates
            </returns>
            <remarks>
            <para>
            This method makes a thread safe invokation of the
            <c>Form.PointToScreen</c> method.
            </para>
            </remarks>
        </member>
        <member name="M:TestFu.Gestures.GestureBase.PointToClient(System.Drawing.Point)">
            <summary>
            Converts the target from screen to
            client coordinates
            </summary>
            <param name="target">
            Position in screen coordinates</param>
            <returns>
            Position converted into client coordinates
            </returns>
            <remarks>
            <para>
            This method makes a thread safe invokation of the
            <c>Form.PointToClient</c> method.
            </para>
            </remarks>
        </member>
        <member name="M:TestFu.Gestures.GestureBase.Start">
            <summary>
            Executes the gesture.
            </summary>
        </member>
        <member name="P:TestFu.Gestures.GestureBase.Form">
            <summary>
            Gets or sets the <see cref="P:TestFu.Gestures.GestureBase.Form"/> instance targeted
            by the <see cref="T:TestFu.Gestures.IGesture"/>
            </summary>
            <value>
            A <see cref="P:TestFu.Gestures.GestureBase.Form"/> instance
            </value>
        </member>
        <member name="E:TestFu.Gestures.GestureBase.FormChanged">
            <summary>
            Raised when the target <see cref="P:TestFu.Gestures.GestureBase.Form"/> is changed
            </summary>
        </member>
        <member name="T:TestFu.Gestures.IMouseGesture">
            <summary>
            A mouse gesture.
            </summary>
        </member>
        <member name="P:TestFu.Gestures.IMouseGesture.Buttons">
            <summary>
            Gets or sets a value indicating the <see cref="T:System.Windows.Forms.MouseButtons"/>
            involved in the gesture.
            </summary>
            <value>
            A combined value of <see cref="T:System.Windows.Forms.MouseButtons"/> flags.
            </value>
        </member>
        <member name="M:TestFu.Gestures.MouseGestureBase.#ctor">
            <summary>
            Initializes an new <see cref="T:TestFu.Gestures.MouseGestureBase"/>.
            </summary>
        </member>
        <member name="M:TestFu.Gestures.MouseGestureBase.#ctor(System.Windows.Forms.Form,System.Windows.Forms.MouseButtons)">
            <summary>
            Initializes a new <see cref="T:TestFu.Gestures.MouseGestureBase"/>
            with a <see cref="T:System.Windows.Forms.Form"/> instance and the buttons
            involved in the gesture.
            </summary>
            <param name="form">
            Target <see cref="T:System.Windows.Forms.Form"/> instance</param>
            <param name="buttons">
            value representing the <see cref="T:System.Windows.Forms.MouseButtons"/>
            involved in the gesture
            </param>
        </member>
        <member name="P:TestFu.Gestures.MouseGestureBase.Buttons">
            <summary>
            Gets or sets a value indicating the <see cref="T:System.Windows.Forms.MouseButtons"/>
            involved in the gesture.
            </summary>
            <value>
            A combined value of <see cref="T:System.Windows.Forms.MouseButtons"/> flags.
            </value>
        </member>
        <member name="M:TestFu.Gestures.ButtonDownMouseGesture.#ctor">
            <summary>
            Initializes a new <see cref="T:TestFu.Gestures.ButtonDownMouseGesture"/>
            </summary>
        </member>
        <member name="M:TestFu.Gestures.ButtonDownMouseGesture.#ctor(System.Windows.Forms.Form)">
            <summary>
            Initializes a new <see cref="T:TestFu.Gestures.ButtonDownMouseGesture"/> with 
            a target <see cref="T:System.Windows.Forms.Form"/> instance and the left button
            </summary>
            <param name="form">
            Target form</param>
        </member>
        <member name="M:TestFu.Gestures.ButtonDownMouseGesture.#ctor(System.Windows.Forms.Form,System.Windows.Forms.MouseButtons)">
            <summary>
            Initializes a new <see cref="T:TestFu.Gestures.ButtonDownMouseGesture"/> with 
            a target <see cref="T:System.Windows.Forms.Form"/> instance and the buttons
            </summary>
            <param name="form">
            Target form</param>
            <param name="buttons">
            value representing the <see cref="T:System.Windows.Forms.MouseButtons"/>
            involved in the gesture
            </param>
        </member>
        <member name="M:TestFu.Gestures.ButtonDownMouseGesture.Start">
            <summary>
            Executes the mouse down event
            </summary>
        </member>
        <member name="T:TestFu.Gestures.ButtonUpMouseGesture">
            <summary>
            A <see cref="T:TestFu.Gestures.IMouseGesture"/> that simulates a MouseUp event
            </summary>
        </member>
        <member name="M:TestFu.Gestures.ButtonUpMouseGesture.#ctor">
            <summary>
            Initialiazes a new <see cref="T:TestFu.Gestures.ButtonUpMouseGesture"/>.
            </summary>
        </member>
        <member name="M:TestFu.Gestures.ButtonUpMouseGesture.#ctor(System.Windows.Forms.Form)">
            <summary>
            Initialiazes a new <see cref="T:TestFu.Gestures.ButtonUpMouseGesture"/> with
            a target <see cref="T:System.Windows.Forms.Form"/>.
            </summary>
            <param name="form">
            Target form
            </param>
        </member>
        <member name="M:TestFu.Gestures.ButtonUpMouseGesture.#ctor(System.Windows.Forms.Form,System.Windows.Forms.MouseButtons)">
            <summary>
            Initialiazes a new <see cref="T:TestFu.Gestures.ButtonUpMouseGesture"/> with
            a target <see cref="T:System.Windows.Forms.Form"/>.
            </summary>
            <param name="form">
            Target form
            </param>
            <param name="buttons">
            value representing the <see cref="T:System.Windows.Forms.MouseButtons"/>
            involved in the gesture
            </param>
        </member>
        <member name="M:TestFu.Gestures.ButtonUpMouseGesture.Start">
            <summary>
            Executes the mouse up event
            </summary>
        </member>
        <member name="T:TestFu.Gestures.ClickMouseGesture">
            <summary>
            A <see cref="T:TestFu.Gestures.IMouseGesture"/> that simulates a button click
            </summary>
        </member>
        <member name="M:TestFu.Gestures.ClickMouseGesture.#ctor">
            <summary>
            Initializes a new <see cref="T:TestFu.Gestures.ClickMouseGesture"/>
            </summary>
        </member>
        <member name="M:TestFu.Gestures.ClickMouseGesture.#ctor(System.Windows.Forms.Form)">
            <summary>
            Initializes a new <see cref="T:TestFu.Gestures.ClickMouseGesture"/>
            with a <see cref="T:System.Windows.Forms.Form"/> instance and the left button
            </summary>
            <param name="form">
            Target <see cref="T:System.Windows.Forms.Form"/> instance
            </param>
        </member>
        <member name="M:TestFu.Gestures.ClickMouseGesture.#ctor(System.Windows.Forms.Form,System.Windows.Forms.MouseButtons)">
            <summary>
            Initializes a new <see cref="T:TestFu.Gestures.ClickMouseGesture"/>
            with a <see cref="T:System.Windows.Forms.Form"/> instance
            </summary>
            <param name="form">
            Target <see cref="T:System.Windows.Forms.Form"/> instance
            </param>
            <param name="buttons">
            value representing the <see cref="T:System.Windows.Forms.MouseButtons"/>
            involved in the gesture
            </param>
        </member>
        <member name="M:TestFu.Gestures.ClickMouseGesture.Start">
            <summary>
            Executes the mouse click
            </summary>
        </member>
        <member name="T:TestFu.Gestures.ControlMoveMouseGesture">
            <summary>
            A <see cref="T:TestFu.Gestures.IMouseGesture"/> that moves the cursor to the 
            center of a <see cref="T:System.Windows.Forms.Control"/>.
            </summary>
        </member>
        <member name="T:TestFu.Gestures.MoveMouseGestureBase">
            <summary>
            An abstract base class for 
            <see cref="T:TestFu.Gestures.IMouseGesture"/> implementations 
            that simulates a mouse movement
            </summary>
        </member>
        <member name="M:TestFu.Gestures.MoveMouseGestureBase.#ctor">
            <summary>
            Initializes a new <see cref="T:TestFu.Gestures.MoveMouseGestureBase"/>
            </summary>
        </member>
        <member name="M:TestFu.Gestures.MoveMouseGestureBase.#ctor(System.Windows.Forms.Form)">
            <summary>
            Initialiazes a new <see cref="T:TestFu.Gestures.MoveMouseGestureBase"/>
            with a target form and no buttons
            </summary>
            <param name="form">
            Target <see cref="T:System.Windows.Forms.Form"/>
            </param>
        </member>
        <member name="M:TestFu.Gestures.MoveMouseGestureBase.#ctor(System.Windows.Forms.Form,System.Windows.Forms.MouseButtons)">
            <summary>
            Initialiazes a new <see cref="T:TestFu.Gestures.MoveMouseGestureBase"/>
            with a target form and the buttons
            </summary>
            <param name="form">
            Target <see cref="T:System.Windows.Forms.Form"/>
            </param>
            <param name="buttons">
            value representing the <see cref="T:System.Windows.Forms.MouseButtons"/>
            involved in the gesture
            </param>
        </member>
        <member name="M:TestFu.Gestures.MoveMouseGestureBase.Start">
            <summary>
            Steers the mouse towards the target
            </summary>
        </member>
        <member name="P:TestFu.Gestures.MoveMouseGestureBase.Target">
            <summary>
            Gets the target of the movement, in client coordinates
            </summary>
            <value>
            A <see cref="T:System.Drawing.Point"/> in client coordinates
            </value>
        </member>
        <member name="P:TestFu.Gestures.MoveMouseGestureBase.MaxVelocity">
            <summary>
            Gets or sets a value indicating the maximum velocity of the
            cursor
            </summary>
            <value>
            A <see cref="T:System.Drawing.Point"/> representing the maximum velocity of the cursor
            </value>
        </member>
        <member name="M:TestFu.Gestures.ControlMoveMouseGesture.#ctor">
            <summary>
            Initializes a new <see cref="T:TestFu.Gestures.ControlMoveMouseGesture"/>
            </summary>
        </member>
        <member name="M:TestFu.Gestures.ControlMoveMouseGesture.#ctor(System.Windows.Forms.Form,System.Windows.Forms.Control)">
            <summary>
            Initializes a new <see cref="T:TestFu.Gestures.ControlMoveMouseGesture"/>
            with a target <see cref="T:System.Windows.Forms.Form"/> and a target 
            <see cref="T:System.Windows.Forms.Control"/>
            </summary>
            <param name="form">
            Target form</param>
            <param name="targetControl">
            Target control
            </param>
        </member>
        <member name="M:TestFu.Gestures.ControlMoveMouseGesture.#ctor(System.Windows.Forms.Form,System.Windows.Forms.MouseButtons,System.Windows.Forms.Control)">
            <summary>
            Initializes a new <see cref="T:TestFu.Gestures.ControlMoveMouseGesture"/>
            with a target <see cref="T:System.Windows.Forms.Form"/>, a target 
            <see cref="T:System.Windows.Forms.Control"/> and the buttons pushed during the move
            </summary>
            <param name="form">
            Target form</param>
            <param name="targetControl">
            Target control
            </param>
            <param name="buttons">
            value representing the <see cref="T:System.Windows.Forms.MouseButtons"/>
            involved in the gesture
            </param>
        </member>
        <member name="P:TestFu.Gestures.ControlMoveMouseGesture.TargetControl">
            <summary>
            Gets or sets the target <see cref="T:System.Windows.Forms.Control"/>
            </summary>
            <value>
            A <see cref="T:System.Windows.Forms.Control"/> instance where the cursor has to move
            </value>
        </member>
        <member name="P:TestFu.Gestures.ControlMoveMouseGesture.Target">
            <summary>
            Gets the center of the target <see cref="T:System.Windows.Forms.Control"/>.
            </summary>
            <value>
            A <see cref="T:System.Drawing.Point"/> representing the center of the 
            target control in client coordiantes
            </value>
        </member>
        <member name="P:TestFu.Gestures.ControlMoveMouseGesture.Offset">
            <summary>
            Offset of the target on the <see cref="T:System.Windows.Forms.Control"/>
            </summary>
            <value></value>
        </member>
        <member name="T:TestFu.Gestures.FixedTargetMoveMouseGesture">
            <summary>
            A <see cref="T:TestFu.Gestures.IMouseGesture"/> that steers the cursor to a target
            </summary>
        </member>
        <member name="M:TestFu.Gestures.FixedTargetMoveMouseGesture.#ctor">
            <summary>
            Initializes a new <see cref="T:TestFu.Gestures.FixedTargetMoveMouseGesture"/>
            </summary>
        </member>
        <member name="M:TestFu.Gestures.FixedTargetMoveMouseGesture.#ctor(System.Windows.Forms.Form,System.Drawing.Point)">
            <summary>
            Initializes a new <see cref="T:TestFu.Gestures.FixedTargetMoveMouseGesture"/>
            with a target <see cref="T:System.Windows.Forms.Form"/> and a target
            </summary>
            <param name="form">
            Target form</param>
            <param name="target">
            Target in client coordinates
            </param>
        </member>
        <member name="M:TestFu.Gestures.FixedTargetMoveMouseGesture.#ctor(System.Windows.Forms.Form,System.Windows.Forms.MouseButtons,System.Drawing.Point)">
            <summary>
            Initializes a new <see cref="T:TestFu.Gestures.FixedTargetMoveMouseGesture"/>
            with a target <see cref="T:System.Windows.Forms.Form"/> and a target
            </summary>
            <param name="form">
            Target form</param>
            <param name="target">
            Target in client coordinates
            </param>
            <param name="buttons">
            value representing the <see cref="T:System.Windows.Forms.MouseButtons"/>
            involved in the gesture
            </param>
        </member>
        <member name="P:TestFu.Gestures.FixedTargetMoveMouseGesture.Target">
            <summary>
            Gets the target of the movement, in client coordinates.
            </summary>
            <value>
            A <see cref="T:System.Drawing.Point"/> in client coordinates
            </value>
            <remarks>
            <para>
            The property value is equal to <see cref="P:TestFu.Gestures.FixedTargetMoveMouseGesture.MouseTarget"/>.
            </para>
            </remarks>
        </member>
        <member name="P:TestFu.Gestures.FixedTargetMoveMouseGesture.MouseTarget">
            <summary>
            Gets or sets the target of the movement, in client coordinates
            </summary>
            <value>
            A <see cref="T:System.Drawing.Point"/> in client coordinates
            </value>
        </member>
        <member name="T:TestFu.Gestures.GestureCollection">
            <summary>
            A <see cref="T:TestFu.Gestures.IGestureCollection"/> implementation.
            </summary>
        </member>
        <member name="T:TestFu.Gestures.IGestureCollection">
            <summary>
            A mutable collection of <see cref="T:TestFu.Gestures.IGesture"/>
            </summary>
        </member>
        <member name="M:TestFu.Gestures.IGestureCollection.Add(TestFu.Gestures.IGesture)">
            <summary>
            Adds a <see cref="T:TestFu.Gestures.IGesture"/> instance 
            to the collection
            </summary>
            <param name="gesture">
            A <see cref="T:TestFu.Gestures.IGesture"/> instance to add to the 
            collection
            </param>
        </member>
        <member name="P:TestFu.Gestures.IGestureCollection.Item(System.Int32)">
            <summary>
            Gets or sets the <see cref="T:TestFu.Gestures.IGesture"/>
            at position <paramref name="index"/>
            </summary>
            <param name="index">
            index of the gesture</param>
            <returns>
            get property, the <see cref="T:TestFu.Gestures.IGesture"/>
            at position <paramref name="index"/>
            </returns>
        </member>
        <member name="T:TestFu.Gestures.GestureFactory">
            <summary>
            A helper factory of <see cref="T:TestFu.Gestures.IGesture"/> instance.
            </summary>
        </member>
        <member name="M:TestFu.Gestures.GestureFactory.#ctor(System.Windows.Forms.Form)">
            <summary>
            Initializes a new <see cref="T:TestFu.Gestures.GestureFactory"/>
            with a <see cref="P:TestFu.Gestures.GestureFactory.Form"/> instance
            </summary>
            <param name="form">
            Target form</param>
        </member>
        <member name="M:TestFu.Gestures.GestureFactory.Start(TestFu.Gestures.IGesture)">
            <summary>
            Creates a <see cref="T:System.Threading.Thread"/> for the 
            <see cref="M:TestFu.Gestures.IGesture.Start"/> method and starts it.
            </summary>
            <param name="gesture">
            The <see cref="T:TestFu.Gestures.IGesture"/> to execute
            </param>
            <returns>
            The started <see cref="T:System.Threading.Thread"/> instance
            </returns>
        </member>
        <member name="M:TestFu.Gestures.GestureFactory.Sequence(TestFu.Gestures.IGesture[])">
            <summary>
            Creates a <see cref="T:TestFu.Gestures.SequenceGesture"/> instance
            with a variable list of <see cref="T:TestFu.Gestures.IGesture"/> instances.
            </summary>
            <param name="gestures">
            gestures to execute in sequence.
            </param>
            <returns>
            A <see cref="T:TestFu.Gestures.SequenceGesture"/> instance</returns>
        </member>
        <member name="M:TestFu.Gestures.GestureFactory.Sleep(System.Int32)">
            <summary>
            Creates a <see cref="T:TestFu.Gestures.SleepGesture"/> that makes the
            thread sleep a given number of milliseconds
            </summary>
            <param name="duration">
            Duration in milliseconds of the sleep
            </param>
            <returns>
            A <see cref="T:TestFu.Gestures.SleepGesture"/> instance
            </returns>
        </member>
        <member name="M:TestFu.Gestures.GestureFactory.Repeat(TestFu.Gestures.IGesture,System.Int32)">
            <summary>
            Creates a new <see cref="T:TestFu.Gestures.RepeatGesture"/> with
            the gesture and the repeat count
            </summary>
            <param name="gesture">
            Target <see cref="T:TestFu.Gestures.IGesture"/> instance
            </param>
            <param name="repeatCount">
            Number of repetition
            </param>
            <returns>
            A <see cref="T:TestFu.Gestures.RepeatGesture"/> instance
            </returns>
        </member>
        <member name="M:TestFu.Gestures.GestureFactory.MouseClick">
            <summary>
            Creates a <see cref="T:TestFu.Gestures.ClickMouseGesture"/>
            that simulates a left click of the mouse
            </summary>
            <returns>
            A <see cref="T:TestFu.Gestures.ClickMouseGesture"/> instance
            </returns>
        </member>
        <member name="M:TestFu.Gestures.GestureFactory.MouseClick(System.Windows.Forms.Control)">
            <summary>
            Creates a <see cref="T:TestFu.Gestures.ClickMouseGesture"/>
            that simulates a left click of the mouse
            </summary>
            <returns>
            A <see cref="T:TestFu.Gestures.ClickMouseGesture"/> instance
            </returns>
            <param name="control">
            Control to click
            </param>
        </member>
        <member name="M:TestFu.Gestures.GestureFactory.MouseClick(System.Windows.Forms.Control,System.Windows.Forms.MouseButtons)">
            <summary>
            Creates a <see cref="T:TestFu.Gestures.ClickMouseGesture"/>
            that simulates a left click of the mouse
            </summary>
            <returns>
            A <see cref="T:TestFu.Gestures.ClickMouseGesture"/> instance
            </returns>
            <param name="control">
            Control to click
            </param>
        </member>
        <member name="M:TestFu.Gestures.GestureFactory.MouseClick(System.Windows.Forms.MouseButtons)">
            <summary>
            Creates a <see cref="T:TestFu.Gestures.ClickMouseGesture"/>
            that simulates a left click of the mouse
            </summary>
            <param name="buttons">
            value representing the <see cref="T:System.Windows.Forms.MouseButtons"/>
            involved in the gesture
            </param>
            <returns>
            A <see cref="T:TestFu.Gestures.ClickMouseGesture"/> instance
            </returns>
        </member>
        <member name="M:TestFu.Gestures.GestureFactory.MouseDown">
            <summary>
            Creates a new <see cref="T:TestFu.Gestures.ButtonDownMouseGesture"/> instance
            that simulates a Mouse down event (left click)
            </summary>
            <returns>
            A <see cref="T:TestFu.Gestures.ButtonDownMouseGesture"/> instance
            </returns>
        </member>
        <member name="M:TestFu.Gestures.GestureFactory.MouseDown(System.Windows.Forms.MouseButtons)">
            <summary>
            Creates a new <see cref="T:TestFu.Gestures.ButtonDownMouseGesture"/> instance
            that simulates a Mouse down event with the buttons
            </summary>
            <param name="buttons">
            value representing the <see cref="T:System.Windows.Forms.MouseButtons"/>
            involved in the gesture
            </param>
            <returns>
            A <see cref="T:TestFu.Gestures.ButtonDownMouseGesture"/> instance
            </returns>
        </member>
        <member name="M:TestFu.Gestures.GestureFactory.MouseUp">
            <summary>
            Creates a new <see cref="T:TestFu.Gestures.ButtonUpMouseGesture"/> instance
            that simulates a Mouse up event (left click)
            </summary>
            <returns>
            A <see cref="T:TestFu.Gestures.ButtonUpMouseGesture"/> instance
            </returns>
        </member>
        <member name="M:TestFu.Gestures.GestureFactory.MouseUp(System.Windows.Forms.MouseButtons)">
            <summary>
            Creates a new <see cref="T:TestFu.Gestures.ButtonUpMouseGesture"/> instance
            that simulates a Mouse up event with the buttons
            </summary>
            <param name="buttons">
            value representing the <see cref="T:System.Windows.Forms.MouseButtons"/>
            involved in the gesture
            </param>
            <returns>
            A <see cref="T:TestFu.Gestures.ButtonUpMouseGesture"/> instance
            </returns>
        </member>
        <member name="M:TestFu.Gestures.GestureFactory.MouseMove(System.Drawing.Point)">
            <summary>
            Creates a <see cref="T:TestFu.Gestures.FixedTargetMoveMouseGesture"/>
            that simulates the movement of the mouse to the target
            </summary>
            <param name="target">
            Target client coordinate
            </param>
            <returns>
            A <see cref="T:TestFu.Gestures.FixedTargetMoveMouseGesture"/> instance
            </returns>
        </member>
        <member name="M:TestFu.Gestures.GestureFactory.MouseMove(System.Drawing.Point,System.Windows.Forms.MouseButtons)">
            <summary>
            Creates a <see cref="T:TestFu.Gestures.FixedTargetMoveMouseGesture"/>
            that simulates the movement of the mouse to the target
            and the buttons down
            </summary>
            <param name="target">
            Target client coordinate
            </param>
            <param name="buttons">
            value representing the <see cref="T:System.Windows.Forms.MouseButtons"/>
            involved in the gesture
            </param>
            <returns>
            A <see cref="T:TestFu.Gestures.FixedTargetMoveMouseGesture"/> instance
            </returns>
        </member>
        <member name="M:TestFu.Gestures.GestureFactory.MouseMove(System.Windows.Forms.Control)">
            <summary>
            Creates a <see cref="T:TestFu.Gestures.ControlMoveMouseGesture"/>
            that simulates the movement of the mouse to the center
            of the <see cref="T:System.Windows.Forms.Control"/>
            </summary>
            <param name="control">
            Target <see cref="T:System.Windows.Forms.Control"/> instance
            </param>
            <returns>
            A <see cref="T:TestFu.Gestures.ControlMoveMouseGesture"/> instance
            </returns>
        </member>
        <member name="M:TestFu.Gestures.GestureFactory.MouseMove(System.Windows.Forms.Control,System.Windows.Forms.MouseButtons)">
            <summary>
            Creates a <see cref="T:TestFu.Gestures.ControlMoveMouseGesture"/>
            that simulates the movement of the mouse to the center
            of the <see cref="T:System.Windows.Forms.Control"/> with the buttons down
            </summary>
            <param name="control">
            Target <see cref="T:System.Windows.Forms.Control"/> instance
            </param>
            <param name="buttons">
            value representing the <see cref="T:System.Windows.Forms.MouseButtons"/>
            involved in the gesture
            </param>
            <returns>
            A <see cref="T:TestFu.Gestures.ControlMoveMouseGesture"/> instance
            </returns>
        </member>
        <member name="M:TestFu.Gestures.GestureFactory.MouseDragAndDrop(System.Drawing.Point,System.Drawing.Point)">
            <summary>
            Creates a <see cref="T:TestFu.Gestures.IGesture"/> instance that simulates
            a drag and drop between <paramref name="source"/>
            and <paramref name="target"/>
            </summary>
            <param name="source">
            Source client coordinate</param>
            <param name="target">
            Target client coordinate
            </param>
            <returns>
            A <see cref="T:TestFu.Gestures.IGesture"/> instance that simulates the drag and drop
            </returns>
        </member>
        <member name="M:TestFu.Gestures.GestureFactory.MouseDragAndDrop(System.Drawing.Point,System.Windows.Forms.Control)">
            <summary>
            Creates a <see cref="T:TestFu.Gestures.IGesture"/> instance that simulates
            a drag and drop between <paramref name="source"/>
            and <paramref name="target"/>
            </summary>
            <param name="source">
            Source client coordinate</param>
            <param name="target">
            Target <see cref="T:System.Windows.Forms.Control"/>
            </param>
            <returns>
            A <see cref="T:TestFu.Gestures.IGesture"/> instance that simulates the drag and drop
            </returns>
        </member>
        <member name="M:TestFu.Gestures.GestureFactory.MouseDragAndDrop(System.Windows.Forms.Control,System.Drawing.Point)">
            <summary>
            Creates a <see cref="T:TestFu.Gestures.IGesture"/> instance that simulates
            a drag and drop between <paramref name="source"/>
            and <paramref name="target"/>
            </summary>
            <param name="source">
            Source <see cref="T:System.Windows.Forms.Control"/>
            </param>
            <param name="target">
            Target client coordinate
            </param>
            <returns>
            A <see cref="T:TestFu.Gestures.IGesture"/> instance that simulates the drag and drop
            </returns>
        </member>
        <member name="M:TestFu.Gestures.GestureFactory.MouseDragAndDrop(System.Windows.Forms.Control,System.Windows.Forms.Control)">
            <summary>
            Creates a <see cref="T:TestFu.Gestures.IGesture"/> instance that simulates
            a drag and drop between <paramref name="source"/>
            and <paramref name="target"/>
            </summary>
            <param name="source">
            Source <see cref="T:System.Windows.Forms.Control"/>
            </param>
            <param name="target">
            Target <see cref="T:System.Windows.Forms.Control"/>
            </param>
            <returns>
            A <see cref="T:TestFu.Gestures.IGesture"/> instance that simulates the drag and drop
            </returns>
        </member>
        <member name="M:TestFu.Gestures.GestureFactory.MouseDragAndDrop(System.Windows.Forms.ListViewItem,System.Windows.Forms.Control)">
            <summary>
            Creates a <see cref="T:TestFu.Gestures.IGesture"/> instance that simulates
            a drag and drop between <paramref name="source"/>
            and <paramref name="target"/>
            </summary>
            <param name="source">
            Source <see cref="T:System.Windows.Forms.ListViewItem"/>
            </param>
            <param name="target">
            Target client coordinate
            </param>
            <returns>
            A <see cref="T:TestFu.Gestures.IGesture"/> instance that simulates the drag and drop
            </returns>
        </member>
        <member name="P:TestFu.Gestures.GestureFactory.Form">
            <summary>
            Gets the target <see cref="P:TestFu.Gestures.GestureFactory.Form"/> instance
            </summary>
            <value>
            A <see cref="P:TestFu.Gestures.GestureFactory.Form"/> instance that is targetted by the gestures
            </value>
        </member>
        <member name="T:TestFu.Gestures.NamespaceDoc">
            <summary>
            <para>
            The <b>TestFu.Gestures</b> namespace contains classes (<see cref="T:TestFu.Gestures.IGesture"/>
            instances) to simulate user mouse and keyboard interactions.
            </para>
            <para>
            The user interaction are simulated by using native methods
            <c>mouse_event</c> and <c>keybd_event</c>.
            </para>
            <para>
            The <see cref="T:TestFu.Gestures.GestureFactory"/> can be used to rapidly generate 
            <see cref="T:TestFu.Gestures.IGesture"/> instances.
            </para>
            <para>
            The gestures should not be executed in the main thread but in a worker thread. Otherwize,
            you will miss message notifications. All gesture methods on <see cref="T:System.Windows.Forms.Control"/>
            and <see cref="T:System.Windows.Forms.Form"/> are thread safe.
            </para>
            </summary>
        </member>
        <member name="T:TestFu.Gestures.RepeatGesture">
            <summary>
            A <see cref="T:TestFu.Gestures.IGesture"/> that executes a Repeat of <see cref="T:TestFu.Gestures.IGesture"/>
            instances.
            </summary>
        </member>
        <member name="M:TestFu.Gestures.RepeatGesture.#ctor">
            <summary>
            Initializes a new <see cref="T:TestFu.Gestures.RepeatGesture"/> instance
            </summary>
        </member>
        <member name="M:TestFu.Gestures.RepeatGesture.#ctor(System.Windows.Forms.Form,TestFu.Gestures.IGesture,System.Int32)">
            <summary>
            Initialiazes a new <see cref="T:TestFu.Gestures.RepeatGesture"/> instance
            with a <see cref="T:System.Windows.Forms.Form"/> instance.
            </summary>
            <param name="form">
            Target <see cref="T:System.Windows.Forms.Form"/>
            </param>
            <param name="gesture">
            The gesture to be repeated
            </param>
            <param name="repeatCount">
            The number of repetition</param>
        </member>
        <member name="M:TestFu.Gestures.RepeatGesture.Start">
            <summary>
            Executes the <see cref="T:TestFu.Gestures.IGesture"/> contained in
            <see cref="N:TestFu.Gestures"/> in Repeat.
            </summary>
        </member>
        <member name="P:TestFu.Gestures.RepeatGesture.Gesture">
            <summary>
            Gets the collection of <see cref="T:TestFu.Gestures.IGesture"/> to execute in Repeat
            </summary>
            <value>
            A <see cref="T:TestFu.Gestures.IGestureCollection"/> instance
            </value>
        </member>
        <member name="P:TestFu.Gestures.RepeatGesture.RepeatCount">
            <summary>
            Gets or sets the number of gesture repetition
            </summary>
            <value>
            The repetition count
            </value>
        </member>
        <member name="T:TestFu.Gestures.SequenceGesture">
            <summary>
            A <see cref="T:TestFu.Gestures.IGesture"/> that executes a sequence of <see cref="T:TestFu.Gestures.IGesture"/>
            instances.
            </summary>
        </member>
        <member name="M:TestFu.Gestures.SequenceGesture.#ctor">
            <summary>
            Initializes a new <see cref="T:TestFu.Gestures.SequenceGesture"/> instance
            </summary>
        </member>
        <member name="M:TestFu.Gestures.SequenceGesture.#ctor(System.Windows.Forms.Form)">
            <summary>
            Initialiazes a new <see cref="T:TestFu.Gestures.SequenceGesture"/> instance
            with a <see cref="P:TestFu.Gestures.SequenceGesture.Form"/> instance.
            </summary>
            <param name="form">
            Target <see cref="P:TestFu.Gestures.SequenceGesture.Form"/>
            </param>
        </member>
        <member name="M:TestFu.Gestures.SequenceGesture.Start">
            <summary>
            Executes the <see cref="T:TestFu.Gestures.IGesture"/> contained in
            <see cref="P:TestFu.Gestures.SequenceGesture.Gestures"/> in sequence.
            </summary>
        </member>
        <member name="P:TestFu.Gestures.SequenceGesture.Gestures">
            <summary>
            Gets the collection of <see cref="T:TestFu.Gestures.IGesture"/> to execute in sequence
            </summary>
            <value>
            A <see cref="T:TestFu.Gestures.IGestureCollection"/> instance
            </value>
        </member>
        <member name="T:TestFu.Gestures.SleepGesture">
            <summary>
            A <see cref="T:TestFu.Gestures.IGesture"/> that makes the <see cref="T:System.Threading.Thread"/>
            sleep.
            </summary>
        </member>
        <member name="M:TestFu.Gestures.SleepGesture.#ctor">
            <summary>
            Initialiazes a new <see cref="T:TestFu.Gestures.SleepGesture"/> instance.
            </summary>
        </member>
        <member name="M:TestFu.Gestures.SleepGesture.#ctor(System.Windows.Forms.Form,System.Int32)">
            <summary>
            Initialiazes a new <see cref="T:TestFu.Gestures.SleepGesture"/> instance
            with a <see cref="T:System.Windows.Forms.Form"/> instance and a sleep duration
            </summary>
            <param name="form">
            Target <see cref="T:System.Windows.Forms.Form"/> instance</param>
            <param name="duration">
            Sleep duration in milliseconds
            </param>
        </member>
        <member name="M:TestFu.Gestures.SleepGesture.Start">
            <summary>
            Executes the sleep gestures
            </summary>
        </member>
        <member name="P:TestFu.Gestures.SleepGesture.Duration">
            <summary>
            Gets or sets the sleep duration (in milliseconds)
            </summary>
            <value>
            Number of milliseconds of sleep
            </value>
        </member>
        <member name="T:TestFu.Gestures.VirtualInput">
            <summary>
            A static helper for artificially generationg mouse
            and keyboard input.
            </summary>
            <remarks>
            <para>
            This class uses <c>mouse_event</c> and <c>keybd_event</c> native
            methods (through interop) to simulate user mouse or keyboard input.
            </para>
            </remarks>
        </member>
        <member name="M:TestFu.Gestures.VirtualInput.MouseEvent(TestFu.Gestures.VirtualInput.MouseEventType)">
            <summary>
            Generates a mouse event
            </summary>
            <param name="mouseEventType">
            Combined flag describing the mouse event
            </param>
        </member>
        <member name="M:TestFu.Gestures.VirtualInput.MouseEvent(TestFu.Gestures.VirtualInput.MouseEventType,System.Int32,System.Int32,System.Int32)">
            <summary>
            Mouse event with additional data
            </summary>
            <param name="mouseEventType">
            Combined flag describing the mouse event
            </param>
            <param name="dx">
            Relative horizontal movement of the cursor
            </param>
            <param name="dy">
            Relative vertical movement of the cursor</param>
            <param name="dwData">
            Additional data
            </param>
        </member>
        <member name="M:TestFu.Gestures.VirtualInput.MouveMouse(System.Int32,System.Int32)">
            <summary>
            Move mouse of units
            </summary>
            <param name="dx">
            horizontal movement</param>
            <param name="dy">
            vertical movement
            </param>
        </member>
        <member name="M:TestFu.Gestures.VirtualInput.BeginMouveMouse(System.Windows.Forms.MouseButtons)">
            <summary>
            Notfies that a mouse movement is starting
            with the buttons settings
            </summary>
            <param name="buttons">
            Combined flag describing the current button
            state
            </param>
        </member>
        <member name="M:TestFu.Gestures.VirtualInput.EndMouveMouse(System.Windows.Forms.MouseButtons)">
            <summary>
            Notfies that a mouse movement is finishing
            with the buttons settings
            </summary>
            <param name="buttons">
            Combined flag describing the current button
            state
            </param>
        </member>
        <member name="M:TestFu.Gestures.VirtualInput.MouseClick(System.Windows.Forms.MouseButtons)">
            <summary>
            Mouse click using button state
            </summary>
            <param name="buttons">
            Combined flag describing the current button
            state
            </param>
        </member>
        <member name="M:TestFu.Gestures.VirtualInput.MouseDown(System.Windows.Forms.MouseButtons)">
            <summary>
            Mouse down event
            </summary>
            <param name="buttons"></param>
        </member>
        <member name="M:TestFu.Gestures.VirtualInput.MouseUp(System.Windows.Forms.MouseButtons)">
            <summary>
            Mouse up event
            </summary>
            <param name="buttons"></param>
        </member>
        <member name="M:TestFu.Gestures.VirtualInput.MouseWheel(System.Int32)">
            <summary>
            Mouse wheel event
            </summary>
            <param name="value">
            Wheel movement</param>
        </member>
        <member name="M:TestFu.Gestures.VirtualInput.PressKey(System.IntPtr,System.Char)">
            <summary>
            Simulates a Key action (KeyDown, Key, KeyUp message sequence)
            </summary>
            <param name="character">character pressed</param>
            <param name="hwnd">handle of control to receive the event</param>
        </member>
        <member name="M:TestFu.Gestures.VirtualInput.PressBackspace(System.IntPtr)">
            <summary>
            Simulates a Backspace
            </summary>
            <param name="hwnd">handle of control to receive the event</param>
        </member>
        <member name="M:TestFu.Gestures.VirtualInput.Type(System.IntPtr,System.String)">
            <summary>
            Simulates a user typing text
            </summary>
            <param name="text">text to enter</param>
            <param name="hwnd">handle of control to receive the event</param>
        </member>
        <member name="T:TestFu.Gestures.VirtualInput.MouseEventType">
            <summary>
            Mouse even type enumeration
            </summary>
        </member>
        <member name="F:TestFu.Gestures.VirtualInput.MouseEventType.None">
            <summary>
            No event
            </summary>
        </member>
        <member name="F:TestFu.Gestures.VirtualInput.MouseEventType.Absolute">
            <summary>
            Mouse move where dx,dy are in absolute coordinate
            </summary>
        </member>
        <member name="F:TestFu.Gestures.VirtualInput.MouseEventType.LeftDown">
            <summary>
            Left button bown
            </summary>
        </member>
        <member name="F:TestFu.Gestures.VirtualInput.MouseEventType.LeftUp">
            <summary>
            Left button up
            </summary>
        </member>
        <member name="F:TestFu.Gestures.VirtualInput.MouseEventType.MiddleDown">
            <summary>
            Middle button down
            </summary>
        </member>
        <member name="F:TestFu.Gestures.VirtualInput.MouseEventType.MiddleUp">
            <summary>
            middle button up
            </summary>
        </member>
        <member name="F:TestFu.Gestures.VirtualInput.MouseEventType.Move">
            <summary>
            Mouse moved
            </summary>
        </member>
        <member name="F:TestFu.Gestures.VirtualInput.MouseEventType.RightDown">
            <summary>
            Right button down
            </summary>
        </member>
        <member name="F:TestFu.Gestures.VirtualInput.MouseEventType.RightUp">
            <summary>
            Right button up
            </summary>
        </member>
        <member name="F:TestFu.Gestures.VirtualInput.MouseEventType.Wheel">
            <summary>
            Mouse wheel movement
            </summary>
        </member>
        <member name="F:TestFu.Gestures.VirtualInput.MouseEventType.XDown">
            <summary>
            Additional button down
            </summary>
        </member>
        <member name="F:TestFu.Gestures.VirtualInput.MouseEventType.Xup">
            <summary>
            Additional button up
            </summary>
        </member>
        <member name="T:TestFu.Grammars.AlternativeRule">
            <summary>
            A <see cref="T:TestFu.Grammars.IRule"/> that choose from a set of sub-<see cref="T:TestFu.Grammars.IRule"/>.
            </summary>
        </member>
        <member name="T:TestFu.Grammars.CollectionRule">
            <summary>
            Abstract rule containing other rules.
            </summary>
        </member>
        <member name="T:TestFu.Grammars.RuleBase">
            <summary>
            Abstract rule class
            </summary>
        </member>
        <member name="T:TestFu.Grammars.IRule">
            <summary>
            A production rule
            </summary>
            <remarks>
            <para>
            A <see cref="T:TestFu.Grammars.IRule"/> instance is used to execute a production.
            </para>
            </remarks>
        </member>
        <member name="M:TestFu.Grammars.IRule.Produce(TestFu.Grammars.IProductionToken)">
            <summary>
            Executes the production using the rule.
            </summary>
            <param name="token">
            A production token authorizing production.
            </param>
            <exception cref="T:System.ArgumentNullException">
            <paramref name="token"/> is a null reference (Nothing in Visual Basic)
            </exception>
        </member>
        <member name="P:TestFu.Grammars.IRule.Weight">
            <summary>
            Gets or sets a value indicating the rule importance
            </summary>
            <value>
            Value indicating the rule importance
            </value>
            <exception cref="T:System.ArgumentException">
            set property, value is negative.
            </exception>
        </member>
        <member name="E:TestFu.Grammars.IRule.Action">
            <summary>
            Semantic actions event.
            </summary>
            <remarks>
            <para>
            Semantic action are triggered upon each successful rule execution.
            </para>
            </remarks>
        </member>
        <member name="P:TestFu.Grammars.IRule.Terminal">
            <summary>
            Gets a value indicating if the rule is terminal
            </summary>
            <value>
            true if the rule is terminal; otherwise, false.
            </value>
        </member>
        <member name="P:TestFu.Grammars.IRule.Name">
            <summary>
            Gets or sets the rule name (for debugging purpose)
            </summary>
            <value>
            The rule name.
            </value>
        </member>
        <member name="M:TestFu.Grammars.RuleBase.#ctor(System.Boolean)">
            <summary>
            Creates an empty rule
            </summary>
            <param name="terminal">
            true if the rule is terminal; otherwise, false.
            </param>
        </member>
        <member name="M:TestFu.Grammars.RuleBase.OnAction">
            <summary>
            Raises the <see cref="F:TestFu.Grammars.RuleBase.Action"/> event.
            </summary>
        </member>
        <member name="M:TestFu.Grammars.RuleBase.Produce(TestFu.Grammars.IProductionToken)">
            <summary>
            Executes the production using the rule (abstract class).
            </summary>
            <param name="token">
            A production token authorizing production.
            </param>
            <exception cref="T:System.ArgumentNullException">
            <paramref name="token"/> is a null reference (Nothing in Visual Basic)
            </exception>
        </member>
        <member name="P:TestFu.Grammars.RuleBase.Terminal">
            <summary>
            Gets a value indicating if the rule is terminal
            </summary>
            <value>
            true if the rule is terminal; otherwise, false.
            </value>
        </member>
        <member name="P:TestFu.Grammars.RuleBase.Name">
            <summary>
            Gets or sets the rule name
            </summary>
            <value>
            The rule name
            </value>
        </member>
        <member name="P:TestFu.Grammars.RuleBase.Weight">
            <summary>
            Gets or sets the rule weight
            </summary>
            <value>
            The rule weight
            </value>
            <exception cref="T:System.ArgumentException">
            set property, weight is negative
            </exception>
        </member>
        <member name="E:TestFu.Grammars.RuleBase.Action">
            <summary>
            Semantic action event.
            </summary>
        </member>
        <member name="M:TestFu.Grammars.CollectionRule.#ctor">
            <summary>
            Creates an empty instance.
            </summary>
        </member>
        <member name="P:TestFu.Grammars.CollectionRule.Rules">
            <summary>
            Gets the list of rules stored in the rule.
            </summary>
            <value>
            <see cref="T:TestFu.Grammars.IRuleList"/> containing the child rules.
            </value>
        </member>
        <member name="M:TestFu.Grammars.AlternativeRule.Produce(TestFu.Grammars.IProductionToken)">
            <summary>
            Choose a <see cref="T:TestFu.Grammars.IRule"/> and launch its production.
            </summary>
            <param name="token">
            Authorizing token
            </param>
        </member>
        <member name="P:TestFu.Grammars.AlternativeRule.Selector">
            <summary>
            Gets or sets the <see cref="T:TestFu.Grammars.IRuleSelector"/> instance
            </summary>
            <value>
            <see cref="T:TestFu.Grammars.IRuleSelector"/> instance.
            </value>
        </member>
        <member name="T:TestFu.Grammars.ConditionalRule">
            <summary>
            If then else rule fashion.
            </summary>
            <remarks>
            <para>
            This rule uses the results of a <see cref="T:TestFu.Grammars.IPredicate"/>
            instance to select which <see cref="T:TestFu.Grammars.IRule"/> to execute:
            <code>
            if (predicate.Test(...))
               rule.Produce(...);
            else
               elseRule.Produce(...);
            </code>
            </para>
            </remarks>
        </member>
        <member name="M:TestFu.Grammars.ConditionalRule.#ctor(TestFu.Grammars.IPredicate,TestFu.Grammars.IRule)">
            <summary>
            Creates a <see cref="T:TestFu.Grammars.ConditionalRule"/> with a 
            <see cref="T:TestFu.Grammars.IPredicate"/> instance and 
            <see cref="T:TestFu.Grammars.IRule"/> instance.
            </summary>
            <param name="predicate">
            <see cref="T:TestFu.Grammars.IPredicate"/> instance used for testing
            </param>
            <param name="rule">
            rule to execute.
            </param>
            <exception cref="T:System.ArgumentNullException">
            <paramref name="predicate"/> or <paramref name="rule"/>
            is a null reference.
            </exception>
        </member>
        <member name="M:TestFu.Grammars.ConditionalRule.#ctor(TestFu.Grammars.IPredicate,TestFu.Grammars.IRule,TestFu.Grammars.IRule)">
            <summary>
            Creates a <see cref="T:TestFu.Grammars.ConditionalRule"/> with a 
            <see cref="T:TestFu.Grammars.IPredicate"/> instance and 
            <see cref="T:TestFu.Grammars.IRule"/> instance. If the predicate returns
            false, <paramref name="elseRule"/> is executed.
            </summary>
            <param name="predicate">
            <see cref="T:TestFu.Grammars.IPredicate"/> instance used for testing
            </param>
            <param name="rule">
            rule to execute.
            </param>
            <param name="elseRule">
            rule to execute if predicate is false.
            </param>
            <exception cref="T:System.ArgumentNullException">
            <paramref name="predicate"/> or <paramref name="rule"/>
            is a null reference.
            </exception>
        </member>
        <member name="M:TestFu.Grammars.ConditionalRule.Produce(TestFu.Grammars.IProductionToken)">
            <summary>
            Executes one of the rules depending on the predicate result.
            </summary>
            <param name="token">
            A production token authorizing production.
            </param>
            <exception cref="T:System.ArgumentNullException">
            <paramref name="token"/> is a null reference (Nothing in Visual Basic)
            </exception>
        </member>
        <member name="P:TestFu.Grammars.ConditionalRule.Predicate">
            <summary>
            Gets or sets the predicate for the condition.
            </summary>
            <value>
            <see cref="T:TestFu.Grammars.IPredicate"/> instance used for testing the condition.
            </value>
            <exception cref="T:System.ArgumentNullException">
            set property, value is a null reference
            </exception>
        </member>
        <member name="P:TestFu.Grammars.ConditionalRule.Rule">
            <summary>
            Gets or sets the rule executed when the predicate is true
            </summary>
            <value>
            <see cref="T:TestFu.Grammars.IRule"/> instance executed when <see cref="P:TestFu.Grammars.ConditionalRule.Predicate"/>
            is true.
            </value>
            <exception cref="T:System.ArgumentNullException">
            set property, value is a null reference
            </exception>
        </member>
        <member name="P:TestFu.Grammars.ConditionalRule.ElseRule">
            <summary>
            Gets or sets the rule executed when the predicate is false
            </summary>
            <value>
            <see cref="T:TestFu.Grammars.IRule"/> instance executed when <see cref="P:TestFu.Grammars.ConditionalRule.Predicate"/>
            is false.
            </value>
        </member>
        <member name="T:TestFu.Grammars.ConditionDelegate">
            <summary>
            Method that returns a bool.
            </summary>
            <param name="token">
            Current <see cref="T:TestFu.Grammars.IProductionToken"/> instance.
            </param>
        </member>
        <member name="T:TestFu.Grammars.ConditionDelegatePredicate">
            <summary>
            A <see cref="T:TestFu.Grammars.IPredicate"/> instance that executes
            a <see cref="T:TestFu.Grammars.ConditionDelegate"/>.
            </summary>
        </member>
        <member name="T:TestFu.Grammars.IPredicate">
            <summary>
            Predicate that checks a given condition.
            </summary>
        </member>
        <member name="M:TestFu.Grammars.IPredicate.Test(TestFu.Grammars.IProductionToken)">
            <summary>
            Checks a condition and returns result.
            </summary>
            <returns>
            Predicate result
            </returns>
            <param name="token">
            Current production token
            </param>
        </member>
        <member name="M:TestFu.Grammars.ConditionDelegatePredicate.#ctor(TestFu.Grammars.ConditionDelegate)">
            <summary>
            Creates a new instance arounda <see cref="T:TestFu.Grammars.ConditionDelegate"/>
            </summary>
            <param name="condition">
            <see cref="T:TestFu.Grammars.ConditionDelegate"/> to attach.
            </param>
            <exception cref="T:System.ArgumentNullException">
            <paramref name="condition"/> is a null reference.
            </exception>
        </member>
        <member name="M:TestFu.Grammars.ConditionDelegatePredicate.Test(TestFu.Grammars.IProductionToken)">
            <summary>
            Invokes the <see cref="T:TestFu.Grammars.ConditionDelegate"/> instance 
            and returns the result.
            </summary>
            <param name="token"></param>
            <returns></returns>
        </member>
        <member name="T:TestFu.Grammars.CountedProduction">
            <summary>
            A <see cref="T:TestFu.Grammars.IProduction"/> class that limits the number of
            terminal <see cref="T:TestFu.Grammars.IRule"/> execution.
            </summary>
        </member>
        <member name="T:TestFu.Grammars.IProduction">
            <summary>
            A production done by a grammar and its set of rules.
            </summary>
        </member>
        <member name="M:TestFu.Grammars.IProduction.RequestToken(TestFu.Grammars.IRule)">
            <summary>
            Processes the request for a <see cref="T:TestFu.Grammars.IProductionToken"/>
            done by a rule and returns the token or throws.
            </summary>
            <param name="rule">
            <see cref="T:TestFu.Grammars.IRule"/> instance that requests the token.
            </param>
            <returns>
            A valid <see cref="T:TestFu.Grammars.IProductionToken"/> instance.
            </returns>
            <exception cref="T:TestFu.Grammars.ProductionException">
            The request was defined using the internal production
            logic.
            </exception>
        </member>
        <member name="P:TestFu.Grammars.IProduction.Seed">
            <summary>
            Gets the seed that created the production
            </summary>
            <value>
            Seed used to create the production
            </value>
        </member>
        <member name="M:TestFu.Grammars.CountedProduction.#ctor(System.Int32)">
            <summary>
            Creates an instance that limits the number of terminal rule execution
            to <paramref name="maxTokenCount"/>.
            </summary>
            <param name="maxTokenCount">
            Maximum number of terminal <see cref="T:TestFu.Grammars.IRule"/> execution.
            </param>
        </member>
        <member name="M:TestFu.Grammars.CountedProduction.RequestToken(TestFu.Grammars.IRule)">
            <summary>
            Processes the request for a <see cref="T:TestFu.Grammars.IProductionToken"/>
            done by a rule and returns the token or throws.
            </summary>
            <param name="rule">
            <see cref="T:TestFu.Grammars.IRule"/> instance that requests the token.
            </param>
            <returns>
            A valid <see cref="T:TestFu.Grammars.IProductionToken"/> instance.
            </returns>
            <exception cref="T:TestFu.Grammars.ProductionException">
            The maximum number of terminal rule execution was hitted.
            </exception>
        </member>
        <member name="T:TestFu.Grammars.CountedProduction.Factory">
            <summary>
            Factory for <see cref="T:TestFu.Grammars.CountedProduction"/> instance.
            </summary>
        </member>
        <member name="T:TestFu.Grammars.IProductionFactory">
            <summary>
            A factory for <see cref="T:TestFu.Grammars.IProduction"/> instances.
            </summary>
        </member>
        <member name="M:TestFu.Grammars.IProductionFactory.CreateProduction(System.Object)">
            <summary>
            Creates a new <see cref="T:TestFu.Grammars.IProduction"/> instance.
            </summary>
            <returns>
            A valid <see cref="T:TestFu.Grammars.IProduction"/> instance.
            </returns>
        </member>
        <member name="M:TestFu.Grammars.CountedProduction.Factory.#ctor">
            <summary>
            Creates a factory of <see cref="T:TestFu.Grammars.CountedProduction"/>.
            </summary>
        </member>
        <member name="M:TestFu.Grammars.CountedProduction.Factory.CreateProduction(System.Object)">
            <summary>
            Creates new instances of <see cref="T:TestFu.Grammars.CountedProduction"/>
            </summary>
            <returns>
            A <see cref="T:TestFu.Grammars.CountedProduction"/> instance
            </returns>
        </member>
        <member name="T:TestFu.Grammars.EventHandlerRule">
            <summary>
            A <see cref="T:TestFu.Grammars.IRule"/> that wraps a <see cref="T:System.EventHandler"/>
            call.
            </summary>
        </member>
        <member name="M:TestFu.Grammars.EventHandlerRule.#ctor(System.EventHandler)">
            <summary>
            Creates an instance with a <see cref="T:System.EventHandler"/>
            attached.
            </summary>
            <param name="handler">
            Handler to attach
            </param>
            <exception cref="T:System.ArgumentNullException">
            <paramref name="handler"/> is a null reference
            </exception>
        </member>
        <member name="M:TestFu.Grammars.EventHandlerRule.Produce(TestFu.Grammars.IProductionToken)">
            <summary>
            Invokes handler.
            </summary>
            <param name="token"></param>
        </member>
        <member name="T:TestFu.Grammars.Grammar">
            <summary>
            A grammar containing a set of rules, a <see cref="P:TestFu.Grammars.Grammar.StartRule"/>.
            </summary>
        </member>
        <member name="T:TestFu.Grammars.IGrammar">
            <summary>
            A grammar containing a set of rules, a <see cref="P:TestFu.Grammars.IGrammar.StartRule"/>.
            </summary>
        </member>
        <member name="M:TestFu.Grammars.IGrammar.Produce(System.Object)">
            <summary>
            Launches a production.
            </summary>
        </member>
        <member name="P:TestFu.Grammars.IGrammar.StartRule">
            <summary>
            Gets or sets the starting rule.
            </summary>
            <value>
            The start <see cref="T:TestFu.Grammars.IRule"/>.
            </value>
        </member>
        <member name="E:TestFu.Grammars.IGrammar.ProductionFinished">
            <summary>
            Raised when production is finished.
            </summary>
        </member>
        <member name="M:TestFu.Grammars.Grammar.#ctor">
            <summary>
            Creates an empty grammar.
            </summary>
        </member>
        <member name="M:TestFu.Grammars.Grammar.Produce(System.Object)">
            <summary>
            Launches a production.
            </summary>
        </member>
        <member name="M:TestFu.Grammars.Grammar.Produce(TestFu.Grammars.IProductionToken)">
            <summary>
            </summary>
        </member>
        <member name="P:TestFu.Grammars.Grammar.ProductionFactory">
            <summary>
            Gets or sets the <see cref="T:TestFu.Grammars.IProductionFactory"/> instance.
            </summary>
            <value>
            <see cref="T:TestFu.Grammars.IProductionFactory"/> instance used for creating new
            productions.
            </value>
        </member>
        <member name="P:TestFu.Grammars.Grammar.StartRule">
            <summary>
            Gets or sets the starting rule.
            </summary>
            <value>
            The start <see cref="T:TestFu.Grammars.IRule"/>.
            </value>
        </member>
        <member name="T:TestFu.Grammars.GuardedRule">
            <summary>
            A <see cref="T:TestFu.Grammars.IRule"/> that guard an inner <see cref="T:TestFu.Grammars.IRule"/> instance
            execution from a specific exceptionType.
            </summary>
        </member>
        <member name="M:TestFu.Grammars.GuardedRule.#ctor(TestFu.Grammars.IRule,System.Type)">
            <summary>
            Creates an instance with the guarded rule and the expected
            exception type.
            </summary>
            <param name="rule">
            Guarded <see cref="T:TestFu.Grammars.IRule"/> instance
            </param>
            <param name="exceptionType">
            Expected <see cref="T:System.Exception"/> type.
            </param>
            <exception cref="T:System.ArgumentNullException">
            <paramref name="rule"/> or <paramref name="exceptionType"/>
            is a null reference.
            </exception>
        </member>
        <member name="M:TestFu.Grammars.GuardedRule.#ctor(TestFu.Grammars.IRule,System.Type,System.Text.RegularExpressions.Regex)">
            <summary>
            Creates an instance with the guarded rule, the expected
            exception type and the regular expression to match the message.
            </summary>
            <param name="rule">
            Guarded <see cref="T:TestFu.Grammars.IRule"/> instance
            </param>
            <param name="exceptionType">
            Expected <see cref="T:System.Exception"/> type.
            </param>
            <param name="messageRegex">
            Regular expression used to match the exception message
            </param>
            <exception cref="T:System.ArgumentNullException">
            <paramref name="rule"/> or <paramref name="exceptionType"/>
            is a null reference.
            </exception>
        </member>
        <member name="M:TestFu.Grammars.GuardedRule.OnAction">
            <summary>
            Raises the <see cref="F:TestFu.Grammars.GuardedRule.Action"/> event.
            </summary>
        </member>
        <member name="M:TestFu.Grammars.GuardedRule.Produce(TestFu.Grammars.IProductionToken)">
            <summary>
            Executes the inner <see cref="T:TestFu.Grammars.IRule"/> and guards for
            a particular exception type.
            </summary>
            <param name="token">
            Authorization token
            </param>
        </member>
        <member name="E:TestFu.Grammars.GuardedRule.Action">
            <summary>
            Semantic actions event
            </summary>		
        </member>
        <member name="P:TestFu.Grammars.GuardedRule.MessageRegex">
            <summary>
            Gets or sets the regular expression to match the message.
            </summary>
            <value>
            The <see cref="T:System.Text.RegularExpressions.Regex"/> instance used to mach the message.
            </value>
            <remarks>
            <para>
            If this property is set to null, no message matching is performed.
            </para>
            </remarks>
        </member>
        <member name="P:TestFu.Grammars.GuardedRule.Name">
            <summary>
            Gets or sets the rule name (for debugging purpose)
            </summary>
            <value>
            The rule name.
            </value>
        </member>
        <member name="P:TestFu.Grammars.GuardedRule.Weight">
            <summary>
            Gets or sets a value indicating the rule importance
            </summary>
            <value>
            Value indicating the rule importance
            </value>
        </member>
        <member name="P:TestFu.Grammars.GuardedRule.Terminal">
            <summary>
            Gets a value indicating if the rule is terminal. 
            </summary>
            <value>
            Always returns true.
            </value>
        </member>
        <member name="T:TestFu.Grammars.IProductionToken">
            <summary>
            An authorization to execute a production.
            </summary>
        </member>
        <member name="P:TestFu.Grammars.IProductionToken.Authorized">
            <summary>
            Gets a value indicating if the production is authorized
            </summary>
            <value>
            true if authorized, otherwise false.
            </value>
        </member>
        <member name="P:TestFu.Grammars.IProductionToken.Production">
            <summary>
            Gets the <see cref="T:TestFu.Grammars.IProduction"/> that emited the token.
            </summary>
            <value>
            The <see cref="T:TestFu.Grammars.IProduction"/> instance that emited the token.
            </value>
        </member>
        <member name="T:TestFu.Grammars.IRandom">
            <summary>
            A class that creates random values.
            </summary>
        </member>
        <member name="M:TestFu.Grammars.IRandom.Next">
            <summary>
            Returns a nonnegative random number.
            </summary>
            <returns>
            A 32-bit signed integer greater than or equal to zero and less than 
            <see cref="F:System.Int32.MaxValue"/>.
            </returns>
        </member>
        <member name="M:TestFu.Grammars.IRandom.Next(System.Int32)">
            <summary>
            Returns a nonnegative random number less than the specified maximum.
            </summary>
            <param name="max"></param>
            <returns>
            A 32-bit signed integer greater than or equal to zero and less than 
            <paramref name="max"/>.
            </returns>
        </member>
        <member name="M:TestFu.Grammars.IRandom.Next(System.Int32,System.Int32)">
            <summary>
            Returns a random number within a specified range.
            </summary>
            <param name="minValue">
            The lower bound of the random number returned. 
            </param>
            <param name="maxValue">
            The upper bound of the random number returned. 
            maxValue must be greater than or equal to minValue.
            </param>
            <returns>
            A 32-bit signed integer greater than or equal to minValue and less 
            than maxValue; that is, the range of return values includes 
            minValue but not MaxValue. If minValue equals maxValue, minValue 
            is returned.
            </returns>
        </member>
        <member name="M:TestFu.Grammars.IRandom.NextDouble">
            <summary>
            Returns a random number between 0.0 and 1.0.
            </summary>
            <returns>
            A double-precision floating point number greater than or equal 
            to 0.0, and less than 1.0.
            </returns>
        </member>
        <member name="T:TestFu.Grammars.IRuleCollection">
            <summary>
            A collection of <see cref="T:TestFu.Grammars.IRule"/>.
            </summary>
        </member>
        <member name="M:TestFu.Grammars.IRuleCollection.GetEnumerator">
            <summary>
            Gets an <see cref="T:TestFu.Grammars.IRuleEnumerator"/> instance of the rules.
            </summary>
            <returns>
            A valid <see cref="T:TestFu.Grammars.IRuleEnumerator"/> instance.
            </returns>
        </member>
        <member name="T:TestFu.Grammars.IRuleEnumerator">
            <summary>
            An enumerator over <see cref="T:TestFu.Grammars.IRule"/> instance.
            </summary>
        </member>
        <member name="P:TestFu.Grammars.IRuleEnumerator.Current">
            <summary>
            Gets the current <see cref="T:TestFu.Grammars.IRule"/> instance
            </summary>
            <value>
            Current <see cref="T:TestFu.Grammars.IRule"/> instance.
            </value>
        </member>
        <member name="T:TestFu.Grammars.IRuleList">
            <summary>
            A list of <see cref="T:TestFu.Grammars.IRule"/>
            </summary>
        </member>
        <member name="M:TestFu.Grammars.IRuleList.Add(TestFu.Grammars.IRule)">
            <summary>
            Adds a <see cref="T:TestFu.Grammars.IRule"/> to the list.
            </summary>
            <param name="rule">
            <see cref="T:TestFu.Grammars.IRule"/> to add
            </param>
        </member>
        <member name="M:TestFu.Grammars.IRuleList.Insert(System.Int32,TestFu.Grammars.IRule)">
            <summary>
            Inserts a <see cref="T:TestFu.Grammars.IRule"/> instance at position <paramref name="index"/>
            </summary>
            <param name="index">
            position to insert the rule
            </param>
            <param name="rule">
            <see cref="T:TestFu.Grammars.IRule"/> to insert
            </param>
        </member>
        <member name="M:TestFu.Grammars.IRuleList.Remove(TestFu.Grammars.IRule)">
            <summary>
            Removes the first occurence of <paramref name="rule"/>.
            </summary>
            <param name="rule">
            <see cref="T:TestFu.Grammars.IRule"/> to remove
            </param>
        </member>
        <member name="M:TestFu.Grammars.IRuleList.Contains(TestFu.Grammars.IRule)">
            <summary>
            Gets a value indicating if <paramref name="rule"/> is in the
            list.
            </summary>
            <param name="rule">
            <see cref="T:TestFu.Grammars.IRule"/> to test.
            </param>
            <returns>
            true if <paramref name="rule"/> is in the list; otherwise, false.
            </returns>
        </member>
        <member name="M:TestFu.Grammars.IRuleList.Clear">
            <summary>
            Clears the list.
            </summary>
        </member>
        <member name="P:TestFu.Grammars.IRuleList.Item(System.Int32)">
            <summary>
            Gets or sets the <see cref="T:TestFu.Grammars.IRule"/> at position <paramref name="index"/>.
            </summary>
            <param name="index">
            <see cref="T:TestFu.Grammars.IRule"/> index.
            </param>
        </member>
        <member name="T:TestFu.Grammars.IRuleSelector">
            <summary>
            A object that select a rule between a collection of rules.
            </summary>
        </member>
        <member name="M:TestFu.Grammars.IRuleSelector.Select(TestFu.Grammars.IRule[])">
            <summary>
            Select a <see cref="T:TestFu.Grammars.IRule"/> from <paramref name="rules"/>
            </summary>
            <param name="rules">
            <see cref="T:TestFu.Grammars.IRule"/> array to select from
            </param>
            <returns>
            Select <see cref="T:TestFu.Grammars.IRule"/> instance
            </returns>
            <exception cref="T:System.ArgumentNullException">
            <paramref name="rules"/> is a null reference
            </exception>
            <exception cref="T:System.ArgumentException">
            <paramref name="rules"/> is empty
            </exception>
        </member>
        <member name="M:TestFu.Grammars.IRuleSelector.Select(TestFu.Grammars.IRuleCollection)">
            <summary>
            Select a <see cref="T:TestFu.Grammars.IRule"/> from <paramref name="rules"/>
            </summary>
            <param name="rules">
            <see cref="T:TestFu.Grammars.IRule"/> collection to select from
            </param>
            <returns>
            Select <see cref="T:TestFu.Grammars.IRule"/> instance
            </returns>
            <exception cref="T:System.ArgumentNullException">
            <paramref name="rules"/> is a null reference
            </exception>
            <exception cref="T:System.ArgumentException">
            <paramref name="rules"/> is empty
            </exception>
        </member>
        <member name="T:TestFu.Grammars.MethodInvokerRule">
            <summary>
            A rule that executes a <see cref="T:TestFu.Grammars.MethodInvokerRule"/>.
            </summary>	
        </member>
        <member name="M:TestFu.Grammars.MethodInvokerRule.#ctor(TestFu.Grammars.MethodInvoker)">
            <summary>
            Creates a new instance around a <see cref="T:TestFu.Grammars.MethodInvoker"/>
            </summary>
            <param name="methodInvoker">
            <see cref="T:TestFu.Grammars.MethodInvoker"/> to attach.
            </param>
            <exception cref="T:System.ArgumentNullException">
            <paramref name="methodInvoker"/> is a null reference.
            </exception>
        </member>
        <member name="M:TestFu.Grammars.MethodInvokerRule.Produce(TestFu.Grammars.IProductionToken)">
            <summary>
            Invokes the <see cref="T:TestFu.Grammars.MethodInvokerRule"/> instance.
            </summary>
            <param name="token">
            Autorization token
            </param>
        </member>
        <member name="T:TestFu.Grammars.NamespaceDoc">
            <summary>
            <para>The <b>TestFu.Grammars</b> namespace contains a framwork for
             implementing
            <b>Production Grammars</b>.
            </para>
            </summary>
        </member>
        <member name="T:TestFu.Grammars.NotExpectedExceptionTypeException">
            <summary>
            Exception throwed when an exception is catched and is
            not from the expected type.
            </summary>
        </member>
        <member name="M:TestFu.Grammars.NotExpectedExceptionTypeException.#ctor(System.Type,System.Exception)">
            <summary>
            Creates an instance with the expected exception type
            and the actual exception.
            </summary>
            <param name="expectedType">
            Expected exception <see cref="T:System.Type"/>
            </param>
            <param name="innerException">
            Actual catch <see cref="T:System.Exception"/> instance
            </param>
        </member>
        <member name="T:TestFu.Grammars.NotExpectedMessageException">
            <summary>
            Exception throwed when an exception message does not match
            with the message regular expression
            </summary>
        </member>
        <member name="M:TestFu.Grammars.NotExpectedMessageException.#ctor(System.Text.RegularExpressions.Regex,System.Exception)">
            <summary>
            Creates an instance with the message regular expression and
            the actual catched exception.
            </summary>
            <param name="messageRegex">
            The <see cref="T:System.Text.RegularExpressions.Regex"/> instance used to match the message
            </param>
            <param name="innerException">
            The actual <see cref="T:System.Exception"/> instance.
            </param>
        </member>
        <member name="P:TestFu.Grammars.NotExpectedMessageException.MessageRegex">
            <summary>
            Gets the <see cref="T:System.Text.RegularExpressions.Regex"/> instance used to match the exception message
            </summary>
            <value>
            <see cref="T:System.Text.RegularExpressions.Regex"/> message matcher.
            </value>
        </member>
        <member name="T:TestFu.Grammars.Predicates">
            <summary>
            A static helper class for creating <see cref="T:TestFu.Grammars.IPredicate"/>.
            </summary>
        </member>
        <member name="M:TestFu.Grammars.Predicates.If(TestFu.Grammars.ConditionDelegate)">
            <summary>
            Creates a <see cref="T:TestFu.Grammars.ConditionDelegatePredicate"/> around
            <paramref name="condition"/>
            </summary>
            <param name="condition">
            condition to wrap</param>
            <returns>
            A <see cref="T:TestFu.Grammars.ConditionDelegatePredicate"/>
            </returns>
        </member>
        <member name="T:TestFu.Grammars.ProductionException">
            <summary>
            Expection class used to stop production.
            </summary>
        </member>
        <member name="M:TestFu.Grammars.ProductionException.#ctor(TestFu.Grammars.IProduction)">
            <summary>
            
            </summary>
            <param name="production"></param>
        </member>
        <member name="P:TestFu.Grammars.ProductionException.Production">
            <summary>
            Gets the production that stopped.
            </summary>
        </member>
        <member name="T:TestFu.Grammars.ProductionToken">
            <summary>
            Default implementation of <see cref="T:TestFu.Grammars.IProductionToken"/>
            </summary>
        </member>
        <member name="M:TestFu.Grammars.ProductionToken.#ctor(TestFu.Grammars.IProduction)">
            <summary>
            Creates a token from <paramref name="production"/>
            </summary>
            <param name="production">
            production to wrap.
            </param>
            <exception cref="T:System.ArgumentNullException">
            <paramref name="production"/> is a null reference (Nothing in 
            Visual Basic).
            </exception>
        </member>
        <member name="P:TestFu.Grammars.ProductionToken.Production">
            <summary>
            Gets the <see cref="T:TestFu.Grammars.IProduction"/> that emited the token.
            </summary>
            <value>
            The <see cref="T:TestFu.Grammars.IProduction"/> instance that emited the token.
            </value>
        </member>
        <member name="P:TestFu.Grammars.ProductionToken.Authorized">
            <summary>
            Gets a value indicating if the production is authorized
            </summary>
            <value>
            true if authorized, otherwise false.
            </value>
        </member>
        <member name="T:TestFu.Grammars.ProductionTokenDelegateRule">
            <summary>
            A rule that executes a <see cref="T:TestFu.Grammars.ProductionTokenDelegate"/>.
            </summary>	
        </member>
        <member name="M:TestFu.Grammars.ProductionTokenDelegateRule.#ctor(TestFu.Grammars.ProductionTokenDelegate)">
            <summary>
            Creates a new instance around a <see cref="T:TestFu.Grammars.ProductionTokenDelegate"/>
            </summary>
            <param name="productionTokenDelegate">
            <see cref="T:TestFu.Grammars.ProductionTokenDelegateRule"/> to attach.
            </param>
            <exception cref="T:System.ArgumentNullException">
            <paramref name="productionTokenDelegate"/> is a null reference.
            </exception>
        </member>
        <member name="M:TestFu.Grammars.ProductionTokenDelegateRule.Produce(TestFu.Grammars.IProductionToken)">
            <summary>
            Invokes the <see cref="T:TestFu.Grammars.ProductionTokenDelegateRule"/> instance.
            </summary>
            <param name="token">
            Autorization token
            </param>
        </member>
        <member name="T:TestFu.Grammars.ProductionTokenEventArgs">
            <summary>
            Summary description for ProductionTokenEventArgs.
            </summary>
        </member>
        <member name="T:TestFu.Grammars.Random">
            <summary>
            System implementation of <see cref="T:TestFu.Grammars.IRandom"/>
            </summary>
        </member>
        <member name="M:TestFu.Grammars.Random.#ctor">
            <summary>
            Creates an instance initialized using <see cref="T:System.DateTime"/>.Now.Ticks.
            </summary>
        </member>
        <member name="T:TestFu.Grammars.RandomRuleSelector">
            <summary>
            Uniform random rule selector.
            </summary>
        </member>
        <member name="M:TestFu.Grammars.RandomRuleSelector.Select(TestFu.Grammars.IRule[])">
            <summary>
            Select a <see cref="T:TestFu.Grammars.IRule"/> from <paramref name="rules"/>
            </summary>
            <param name="rules">
            <see cref="T:TestFu.Grammars.IRule"/> array to select from
            </param>
            <returns>
            Select <see cref="T:TestFu.Grammars.IRule"/> instance
            </returns>
            <exception cref="T:System.ArgumentNullException">
            <paramref name="rules"/> is a null reference
            </exception>
            <exception cref="T:System.ArgumentException">
            <paramref name="rules"/> is empty
            </exception>
        </member>
        <member name="M:TestFu.Grammars.RandomRuleSelector.Select(TestFu.Grammars.IRuleCollection)">
            <summary>
            Select a <see cref="T:TestFu.Grammars.IRule"/> from <paramref name="rules"/>
            </summary>
            <param name="rules">
            <see cref="T:TestFu.Grammars.IRule"/> collection to select from
            </param>
            <returns>
            Select <see cref="T:TestFu.Grammars.IRule"/> instance
            </returns>
            <exception cref="T:System.ArgumentNullException">
            <paramref name="rules"/> is a null reference
            </exception>
            <exception cref="T:System.ArgumentException">
            <paramref name="rules"/> is empty
            </exception>
        </member>
        <member name="P:TestFu.Grammars.RandomRuleSelector.Random">
            <summary>
            Gets or sets the random generator
            </summary>
            <value>
            The <see cref="T:TestFu.Grammars.IRandom"/> instance used for random data generation
            </value>
            <exception cref="T:System.ArgumentNullException">
            set property, value is a null  reference
            </exception>
        </member>
        <member name="T:TestFu.Grammars.RepetitionRule">
            <summary>
            A <see cref="T:TestFu.Grammars.IRule"/> that executes repeatidely an inner <see cref="T:TestFu.Grammars.IRule"/>
            </summary>
        </member>
        <member name="M:TestFu.Grammars.RepetitionRule.#ctor(TestFu.Grammars.IRule,System.Int32,System.Int32)">
            <summary>
            Creates an instance that executes the rule between
            <paramref name="minOccurense"/> and <paramref name="maxOccurence"/>
            times.
            </summary>
            <param name="rule">
            <see cref="T:TestFu.Grammars.IRule"/> to repeat
            </param>
            <param name="minOccurence">
            Minimum number of occurence
            </param>
            <param name="maxOccurence">
            Maximum number of occurence
            </param>
        </member>
        <member name="M:TestFu.Grammars.RepetitionRule.Produce(TestFu.Grammars.IProductionToken)">
            <summary>
            Executes repeatidely the inner rule.
            </summary>
            <param name="token">
            Authorization token
            </param>
        </member>
        <member name="M:TestFu.Grammars.RepetitionRule.ToEbnf">
            <summary>
            Converts rule to EBNF like representation
            </summary>
            <returns>
            EBNF-like string representing the rule.
            </returns>
        </member>
        <member name="P:TestFu.Grammars.RepetitionRule.Random">
            <summary>
            Gets or sets the random generator used for selection repetition
            counts
            </summary>
            <value>
            The <see cref="T:TestFu.Grammars.IRandom"/> random generator.
            </value>
            <exception cref="T:System.ArgumentNullException">
            set property, value is a null reference
            </exception>
        </member>
        <member name="P:TestFu.Grammars.RepetitionRule.Rule">
            <summary>
            Gets the inner <see cref="T:TestFu.Grammars.IRule"/> instance
            </summary>
            <value>
            Repeated <see cref="T:TestFu.Grammars.IRule"/> instance.
            </value>
        </member>
        <member name="P:TestFu.Grammars.RepetitionRule.MinOccurence">
            <summary>
            Gets the minimum of rule execution
            </summary>
            <value>
            Minimum of rule execution
            </value>
        </member>
        <member name="P:TestFu.Grammars.RepetitionRule.MaxOccurence">
            <summary>
            Gets the maximum of rule execution
            </summary>
            <value>
            Maximum of rule execution
            </value>
        </member>
        <member name="T:TestFu.Grammars.RoundRobinRuleSelector">
            <summary>
            Round Robin rule selector.
            </summary>
        </member>
        <member name="M:TestFu.Grammars.RoundRobinRuleSelector.Select(TestFu.Grammars.IRule[])">
            <summary>
            Select a <see cref="T:TestFu.Grammars.IRule"/> from <paramref name="rules"/>
            </summary>
            <param name="rules">
            <see cref="T:TestFu.Grammars.IRule"/> array to select from
            </param>
            <returns>
            Select <see cref="T:TestFu.Grammars.IRule"/> instance
            </returns>
            <exception cref="T:System.ArgumentNullException">
            <paramref name="rules"/> is a null reference
            </exception>
            <exception cref="T:System.ArgumentException">
            <paramref name="rules"/> is empty
            </exception>
        </member>
        <member name="M:TestFu.Grammars.RoundRobinRuleSelector.Select(TestFu.Grammars.IRuleCollection)">
            <summary>
            Select a <see cref="T:TestFu.Grammars.IRule"/> from <paramref name="rules"/>
            </summary>
            <param name="rules">
            <see cref="T:TestFu.Grammars.IRule"/> collection to select from
            </param>
            <returns>
            Select <see cref="T:TestFu.Grammars.IRule"/> instance
            </returns>
            <exception cref="T:System.ArgumentNullException">
            <paramref name="rules"/> is a null reference
            </exception>
            <exception cref="T:System.ArgumentException">
            <paramref name="rules"/> is empty
            </exception>
        </member>
        <member name="P:TestFu.Grammars.RoundRobinRuleSelector.Index">
            <summary>
            Gets or sets the current rule index.
            </summary>
            <value>
            Current rule index
            </value>
        </member>
        <member name="T:TestFu.Grammars.RuleList">
            <summary>
            A collection of elements of type IRule
            </summary>
        </member>
        <member name="M:TestFu.Grammars.RuleList.#ctor">
            <summary>
            Initializes a new empty instance of the RuleList class.
            </summary>
        </member>
        <member name="M:TestFu.Grammars.RuleList.Add(TestFu.Grammars.IRule)">
            <summary>
            Adds an instance of type IRule to the end of this RuleList.
            </summary>
            <param name="value">
            The IRule to be added to the end of this RuleList.
            </param>
        </member>
        <member name="M:TestFu.Grammars.RuleList.Contains(TestFu.Grammars.IRule)">
            <summary>
            Determines whether a specfic IRule value is in this RuleList.
            </summary>
            <param name="value">
            The IRule value to locate in this RuleList.
            </param>
            <returns>
            true if value is found in this RuleList;
            false otherwise.
            </returns>
        </member>
        <member name="M:TestFu.Grammars.RuleList.Insert(System.Int32,TestFu.Grammars.IRule)">
            <summary>
            Inserts an element into the RuleList at the specified index
            </summary>
            <param name="index">
            The index at which the IRule is to be inserted.
            </param>
            <param name="value">
            The IRule to insert.
            </param>
        </member>
        <member name="M:TestFu.Grammars.RuleList.Remove(TestFu.Grammars.IRule)">
            <summary>
            Removes the first occurrence of a specific IRule from this RuleList.
            </summary>
            <param name="value">
            The IRule value to remove from this RuleList.
            </param>
        </member>
        <member name="M:TestFu.Grammars.RuleList.GetEnumerator">
            <summary>
            Returns an enumerator that can iterate through the elements of this RuleList.
            </summary>
            <returns>
            An object that implements System.Collections.IEnumerator.
            </returns>        
        </member>
        <member name="P:TestFu.Grammars.RuleList.Item(System.Int32)">
            <summary>
            Gets or sets the IRule at the given index in this RuleList.
            </summary>
        </member>
        <member name="T:TestFu.Grammars.RuleList.Enumerator">
            <summary>
            Type-specific enumeration class, used by RuleList.GetEnumerator.
            </summary>
        </member>
        <member name="M:TestFu.Grammars.RuleList.Enumerator.#ctor(TestFu.Grammars.RuleList)">
            <summary>
            
            </summary>
            <param name="collection"></param>
        </member>
        <member name="M:TestFu.Grammars.RuleList.Enumerator.MoveNext">
            <summary>
            
            </summary>
            <returns></returns>
        </member>
        <member name="M:TestFu.Grammars.RuleList.Enumerator.Reset">
            <summary>
            
            </summary>
        </member>
        <member name="P:TestFu.Grammars.RuleList.Enumerator.Current">
            <summary>
            
            </summary>
        </member>
        <member name="P:TestFu.Grammars.RuleList.Enumerator.System#Collections#IEnumerator#Current">
            <summary>
            
            </summary>
        </member>
        <member name="T:TestFu.Grammars.Rules">
            <summary>
            Static helper class for creating rules.
            </summary>
        </member>
        <member name="M:TestFu.Grammars.Rules.Alt(TestFu.Grammars.IRule[])">
            <summary>
            Creates an alternative of rules.
            </summary>
            <param name="rules">
            Set of rule to choose from alternatively.
            </param>
            <remarks>
            <code>
            [EBNF]
            rule := A | B | C
            
            [C#]
            IRule rule = Rules.Alt(A,B,C);
            </code>
            </remarks>
            <returns>
            An <see cref="T:TestFu.Grammars.AlternativeRule"/> instance implementing
            the alternative rule choosing.
            </returns>
        </member>
        <member name="M:TestFu.Grammars.Rules.WeightedAlt(TestFu.Grammars.IRule[])">
            <summary>
            Creates a weighted alternative of rules.
            </summary>
            <param name="rules">
            Set of rule to choose from alternatively.
            </param>
            <remarks>
            <para>
            The <see cref="P:TestFu.Grammars.IRule.Weight"/> property of each rule is used to
            weight the probability to choose the rule.
            </para>
            <code>
            [EBNF]
            rule := A | B | C where A is chosen with P(A)=A.Weight / ABC.Weight
            and ABC.Weight = A.Weight + B.Weight + C.Weight
            
            [C#]
            IRule rule = Rules.WeightedAlt(A,B,C);
            </code>
            </remarks>
            <returns>
            An <see cref="T:TestFu.Grammars.AlternativeRule"/> instance implementing
            the alternative rule choosing.
            </returns>
        </member>
        <member name="M:TestFu.Grammars.Rules.Seq(TestFu.Grammars.IRule[])">
            <summary>
            Creates a sequence of rules.
            </summary>
            <param name="rules">
            Set of rule to execute in sequence.
            </param>
            <remarks>
            <code>
            [EBNF]
            rule := A B C
            
            [C#]
            IRule rule = Rules.Seq(A,B,C);
            </code>
            </remarks>
            <returns>
            An <see cref="T:TestFu.Grammars.SequenceRule"/> instance implementing
            the sequence of rules.
            </returns>
        </member>
        <member name="M:TestFu.Grammars.Rules.Opt(TestFu.Grammars.IRule)">
            <summary>
            Creates an optional rule.
            </summary>
            <param name="rule">
            Rule to execute optionaly.
            </param>
            <remarks>
            <code>
            [EBNF]
            rule := A?
            
            [C#]
            IRule rule = Rules.Opt(A);
            </code>
            </remarks>
            <returns>
            An <see cref="T:TestFu.Grammars.RepetitionRule"/> instance implementing
            the ? operator.
            </returns>
        </member>
        <member name="M:TestFu.Grammars.Rules.Pos(TestFu.Grammars.IRule)">
            <summary>
            Creates a rule to be execute one or more times.
            </summary>
            <param name="rule">
            Rule to be executed.
            </param>
            <remarks>
            <code>
            [EBNF]
            rule := A+
            
            [C#]
            IRule rule = Rules.Pos(A);
            </code>
            </remarks>
            <returns>
            An <see cref="T:TestFu.Grammars.RepetitionRule"/> instance implementing
            the + operator.
            </returns>
        </member>
        <member name="M:TestFu.Grammars.Rules.Kleene(TestFu.Grammars.IRule)">
            <summary>
            Creates a rule to be execute zero or more times.
            </summary>
            <param name="rule">
            Rule to be executed.
            </param>
            <remarks>
            <code>
            [EBNF]
            rule := A*
            
            [C#]
            IRule rule = Rules.Kleene(A);
            </code>
            </remarks>
            <returns>
            An <see cref="T:TestFu.Grammars.RepetitionRule"/> instance implementing
            the * operator.
            </returns>
        </member>
        <member name="M:TestFu.Grammars.Rules.Repetition(TestFu.Grammars.IRule,System.Int32,System.Int32)">
            <summary>
            Creates a rule to be execute between <paramref name="minOccurence"/>
            and <paramref name="maxOccurence"/> times.
            </summary>
            <param name="rule">
            Rule to be executed.
            </param>
            <remarks>
            <code>
            [EBNF]
            rule := A{m,n}
            
            [C#]
            IRule rule = Rules.Repetition(A,m,n);
            </code>
            </remarks>
            <param name="minOccurence">
            minimum number of execution of <paramref name="rule"/>
            </param>
            <param name="maxOccurence">
            maximum number of execution of <paramref name="rule"/>
            </param>
            <returns>
            An <see cref="T:TestFu.Grammars.RepetitionRule"/> instance implementing
            the {m,n} operator.
            </returns>
        </member>
        <member name="M:TestFu.Grammars.Rules.EventHandler(System.EventHandler)">
            <summary>
            Creates a <see cref="T:TestFu.Grammars.IRule"/> that executes an <see cref="M:TestFu.Grammars.Rules.EventHandler(System.EventHandler)"/>.
            </summary>
            <param name="handler">
            <see cref="M:TestFu.Grammars.Rules.EventHandler(System.EventHandler)"/> to execute
            </param>
            <returns>
            <see cref="T:TestFu.Grammars.EventHandlerRule"/> instance that contains <paramref name="handler"/>
            </returns>
        </member>
        <member name="M:TestFu.Grammars.Rules.Method(TestFu.Grammars.MethodInvoker)">
            <summary>
            Creates a <see cref="T:TestFu.Grammars.IRule"/> that executes an <see cref="T:TestFu.Grammars.MethodInvoker"/>.
            </summary>
            <param name="del">
            <see cref="T:TestFu.Grammars.MethodInvoker"/> to execute
            </param>
            <returns>
            <see cref="T:TestFu.Grammars.MethodInvokerRule"/> instance that contains 
            <paramref name="del"/>
            </returns>
        </member>
        <member name="M:TestFu.Grammars.Rules.Method(TestFu.Grammars.ProductionTokenDelegate)">
            <summary>
            Creates a <see cref="T:TestFu.Grammars.IRule"/> that executes an <see cref="T:TestFu.Grammars.ProductionTokenDelegate"/>.
            </summary>
            <param name="del">
            <see cref="T:TestFu.Grammars.ProductionTokenDelegate"/> to execute
            </param>
            <returns>
            <see cref="T:TestFu.Grammars.ProductionTokenDelegateRule"/> instance that contains 
            <paramref name="del"/>
            </returns>
        </member>
        <member name="M:TestFu.Grammars.Rules.Guard(TestFu.Grammars.IRule,System.Type)">
            <summary>
            Guards the execution of a <see cref="T:TestFu.Grammars.IRule"/> from an expected
            <see cref="T:System.Exception"/> type.
            </summary>
            <param name="rule">
            <see cref="T:TestFu.Grammars.IRule"/> instance to guard.
            </param>
            <param name="exceptionType">
            Expected throwed exception when <paramref name="rule"/> is executed
            </param>
            <returns>
            A <see cref="T:TestFu.Grammars.GuardedRule"/> instance guarding <paramref name="rule"/>
            </returns>
        </member>
        <member name="M:TestFu.Grammars.Rules.If(TestFu.Grammars.IPredicate,TestFu.Grammars.IRule)">
            <summary>
            Creates a conditional rule with "if" rule.
            </summary>
            <param name="cond">
            Condition expression
            </param>
            <param name="rule">
            <see cref="T:TestFu.Grammars.IRule"/> to execute if condition is true.
            </param>
            <returns>
            A <see cref="T:TestFu.Grammars.ConditionalRule"/> implementing condition rule execution.
            </returns>
        </member>
        <member name="M:TestFu.Grammars.Rules.If(TestFu.Grammars.IPredicate,TestFu.Grammars.IRule,TestFu.Grammars.IRule)">
            <summary>
            Creates a conditional rule with "if" rule and "else" rule.
            </summary>
            <param name="cond">
            Condition expression
            </param>
            <param name="rule">
            <see cref="T:TestFu.Grammars.IRule"/> to execute if condition is true.
            </param>
            <param name="elseRule">
            <see cref="T:TestFu.Grammars.IRule"/> to execute if condition is false.
            </param>
            <returns>
            A <see cref="T:TestFu.Grammars.ConditionalRule"/> implementing condition rule execution.
            </returns>
        </member>
        <member name="M:TestFu.Grammars.Rules.If(TestFu.Grammars.ConditionDelegate,TestFu.Grammars.IRule,TestFu.Grammars.IRule)">
            <summary>
            Creates a conditional rule with "if" rule.
            </summary>
            <param name="cond">
            Condition expression
            </param>
            <param name="rule">
            <see cref="T:TestFu.Grammars.IRule"/> to execute if condition is true.
            </param>
            <param name="elseRule">
            <see cref="T:TestFu.Grammars.IRule"/> to execute if condition is false.
            </param>
            <returns>
            A <see cref="T:TestFu.Grammars.ConditionalRule"/> implementing condition rule execution.
            </returns>
        </member>
        <member name="M:TestFu.Grammars.Rules.If(TestFu.Grammars.ConditionDelegate,TestFu.Grammars.IRule)">
            <summary>
            Creates a conditional rule with "if" rule and "else" rule.
            </summary>
            <param name="cond">
            Condition expression
            </param>
            <param name="rule">
            <see cref="T:TestFu.Grammars.IRule"/> to execute if condition is true.
            </param>
            <returns>
            A <see cref="T:TestFu.Grammars.ConditionalRule"/> implementing condition rule execution.
            </returns>
        </member>
        <member name="T:TestFu.Grammars.SequenceRule">
            <summary>
            A sequence of rules.
            </summary>
        </member>
        <member name="M:TestFu.Grammars.SequenceRule.Produce(TestFu.Grammars.IProductionToken)">
            <summary>
            Executes sub-rule production in sequence.
            </summary>
            <param name="token">
            <see cref="T:TestFu.Grammars.IProductionToken"/> to authorize production.
            </param>
        </member>
        <member name="T:TestFu.Grammars.WeightedRandomRuleSelector">
            <summary>
            Weighted random rule selector.
            </summary>
        </member>
        <member name="M:TestFu.Grammars.WeightedRandomRuleSelector.Select(TestFu.Grammars.IRule[])">
            <summary>
            Select a <see cref="T:TestFu.Grammars.IRule"/> from <paramref name="rules"/>
            </summary>
            <param name="rules">
            <see cref="T:TestFu.Grammars.IRule"/> array to select from
            </param>
            <returns>
            Select <see cref="T:TestFu.Grammars.IRule"/> instance
            </returns>
            <exception cref="T:System.ArgumentNullException">
            <paramref name="rules"/> is a null reference
            </exception>
            <exception cref="T:System.ArgumentException">
            <paramref name="rules"/> is empty
            </exception>
        </member>
        <member name="M:TestFu.Grammars.WeightedRandomRuleSelector.Select(TestFu.Grammars.IRuleCollection)">
            <summary>
            Select a <see cref="T:TestFu.Grammars.IRule"/> from <paramref name="rules"/>
            </summary>
            <param name="rules">
            <see cref="T:TestFu.Grammars.IRule"/> collection to select from
            </param>
            <returns>
            Select <see cref="T:TestFu.Grammars.IRule"/> instance
            </returns>
            <exception cref="T:System.ArgumentNullException">
            <paramref name="rules"/> is a null reference
            </exception>
            <exception cref="T:System.ArgumentException">
            <paramref name="rules"/> is empty
            </exception>
        </member>
        <member name="T:TestFu.NamespaceDoc">
            <summary>
            <para>
            <em><b>TestFu</b>, the Art of Testing.</em>
            </para>
            <para>
            The <b>TestFu</b> assembly contains a bunch of framework to help
            developper build automated tests using random generators,
            models, grammars, etc...
            </para>
            </summary>
        </member>
        <member name="T:TestFu.Tests.Operations.NamespaceDoc">
            <summary>
            <para>
            The <b>TestFu.Operations</b> namespace contains classes for building
            Combinatorial Test suites.
            </para>
            <para>
            The algorithms for generating the covergate suites are extracted
            from <em>Efficient Algorithms for Generation of Combinatorial Covering Suites</em>, 
            by Adrian Dumitrescu.
            </para>
            </summary>
        </member>
        <member name="T:TestFu.Operations.Permutation">
            <summary>
            A class to generate permutations.
            </summary>
            <remarks>
            <para>
            This class can generate any sequence of permutation of order <see cref="P:TestFu.Operations.Permutation.Order"/>.
            The <see cref="M:TestFu.Operations.Permutation.GetSuccessor"/> method returns the next permutation, while
            <see cref="M:TestFu.Operations.Permutation.GetSuccessors"/> can be used to iterates all the rest of the permutations.
            </para>
            <para>
            The permutation can be applied to an array using <see cref="M:TestFu.Operations.Permutation.ApplyTo(System.Object[])"/>, it can also
            be inverted using <see cref="M:TestFu.Operations.Permutation.Inverse"/>.
            </para>
            <para>
            This class was extracted from
            <a href="http://msdn.microsoft.com/library/default.asp?url=/library/en-us/dnnetsec/html/permutations.asp">
            <em>Using Permutations in .NET for Improved Systems Security</em> by
            Dr. James McCaffrey.
            </a>
            </para>
            </remarks>
        </member>
        <member name="M:TestFu.Operations.Permutation.#ctor(System.Int32)">
            <summary>
            Creates a new idenity permutation
            </summary>
            <param name="n">
            order of the new permutation
            </param>
        </member>
        <member name="M:TestFu.Operations.Permutation.#ctor(System.Int32,System.Int32)">
            <summary>
            Creates the <paramref name="k"/>-th permutation of
            order <paramref name="n"/>.
            </summary>
            <param name="n"></param>
            <param name="k"></param>
        </member>
        <member name="M:TestFu.Operations.Permutation.CheckPermutation">
            <summary>
            Checks that the permutation is correct
            </summary>
        </member>
        <member name="M:TestFu.Operations.Permutation.ToString">
            <summary>
            Converts the permutation to a string representation.
            </summary>
            <returns></returns>
        </member>
        <member name="M:TestFu.Operations.Permutation.ApplyTo(System.Object[])">
            <summary>
            Applis the permutation to the array 
            </summary>
            <param name="arr">
            A <see cref="T:System.Object"/> array of Length equal 
            to <see cref="P:TestFu.Operations.Permutation.Order"/>.</param>
            <returns>
            A new array containing the permutated element of <paramref name="arr"/>
            </returns>
        </member>
        <member name="M:TestFu.Operations.Permutation.Inverse">
            <summary>
            Creates the inverse of the permutation.
            </summary>
            <returns></returns>
        </member>
        <member name="M:TestFu.Operations.Permutation.GetSuccessor">
            <summary>
            Creates the next permutation in lexicographic order.
            </summary>
            <returns>
            The next <see cref="T:TestFu.Operations.Permutation"/> instance if there remain any;
            otherwize a null reference.
            </returns>
        </member>
        <member name="M:TestFu.Operations.Permutation.GetSuccessors">
            <summary>
            Gets an enumerable collection of <see cref="T:TestFu.Operations.Permutation"/> successors.
            </summary>
            <returns></returns>
        </member>
        <member name="P:TestFu.Operations.Permutation.Order">
            <summary>
            Gets the order of the permutation
            </summary>
            <value></value>
        </member>
    </members>
</doc>
